Closed neilmunday closed 5 years ago
How do you configure? It seems like it's not being compiled with X?
-[Unknown]
Correct, I am trying to build PPSSPP without X. I have done this in the past for the Raspberry Pi 2 and 3.
Here are the commands I am using to build PPSSPP:
git clone git://github.com/hrydgard/ppsspp
git submodule init
git submodule update
./linux_rpi.sh
mkdir build
cd build
cmake -D SDL2_LIBRARY:PATH=/opt/sdl2/default/lib/libSDL2.so \
-D SDL2_INCLUDE_DIR:PATH=/opt/sdl2/default/include/SDL2 \
-D CMAKE_INSTALL_PREFIX:PATH=/opt/ppsspp \
-D CMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/raspberry.armv7.cmake \
-D USING_X11_VULKAN=0 \
..
I am also using the vc4-fkms-v3d
dtoverlay for the Raspberry Pi 4 in /boot/config.txt
.
SDL2 2.0.10 was configured with the following configure flags:
./configure --prefix=/opt/sdl2/default --enable-assertions=disabled --disable-video-opengl --disable-video-x11 --disable-pulseaudio --disable-esd --enable-video-opengles --enable-libudev --disable-video-rpi --enable-video-kmsdrm
With the Pi 4, apparently it now works to use X and get hardware acceleration (so I understand, haven't tried a Pi 4.)
As such, USING_FBDEV is not forced on for Pi 4: https://github.com/hrydgard/ppsspp/blob/6a1676413ee8bdbb53e0c133e02cf74a8950a13a/cmake/Toolchains/raspberry.armv7.cmake#L35-L39
If you want fbdev still on Pi 4, just pass -D USING_FBDEV=ON
to cmake (you can safely pass this for Pi 2/3/etc. as well.)
-[Unknown]
Thanks for the info. I'll give it go over the next few days and feedback.
Although PPSSPP now compiles, it fails at run time:
./PPSSPPSDL
I: VulkanLoader.cpp:264: VulkanMayBeAvailable: Device allowed ('SDL:Linux')
I: VulkanLoader.cpp:280: Vulkan loader: Library not available
DEBUG: Vulkan is not available, not using Vulkan.
I: Config.cpp:517: Longest display side: -1 pixels. Choosing scale 1
48:49:392 Core/Config.cpp:1188 I[LOADER]: Loading controller config: /home/pi/.config/ppsspp/PSP/SYSTEM/controls.ini
48:49:398 UI/NativeApp.cpp:389 E[LOADER]: Failed graphics backends: OPENGL,ALL,ALL,ALL,ALL
48:49:398 Core/Config.cpp:599 E[LOADER]: Graphics backend failed for 0, trying another
48:49:398 Core/Config.cpp:624 E[LOADER]: All graphics backends failed
48:49:408 Core/Config.cpp:1273 I[LOADER]: Config saved (got storage permission): '/home/pi/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
48:49:409 Core/Config.cpp:1286 I[LOADER]: Controller config saved: /home/pi/.config/ppsspp/PSP/SYSTEM/controls.ini
Pixels: 3840 x 2160
Virtual pixels: 3840 x 2160
* failed to add service - already in use?
It looks like it might be trying to use the /opt/vc libraries which don't work on the Raspberry Pi 4.
See #12388, closing since it compiles and the runtime issue was reported a new driver problem.
It would be interesting to know if other GL apps using fbdev still work fine. We're not really doing anything strange.
-[Unknown]
I've compiled RetroArch and Mupen64Plus (standalone) and they both work for me. Retroarch is using OpenGL/KMS and Mupen64Plus is using GLES and SDL2 (built with kms also). I think PPSSPP is picking up the GLES libraries under /opt/vc which aren't supported on the Raspberry Pi 4. I'll try telling PPSSPP to use the GLES libraries under /usr/lib instead.
If it works to move set(CMAKE_EXE_LINKER_FLAGS "-L/opt/vc/lib" CACHE STRING "" FORCE)
inside the if to, that seems reasonable.
People had reported it working on Pi 4, so IO wonder what changed. Unfortunately, I don't have a device to test with.
-[Unknown]
Here's the cmake file I used with my latest attempt:
set(ARCH_FLAGS "-mfpu=neon -mtune=cortex-a72 -march=armv8-a -mfloat-abi=hard")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE)
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${ARCH_FLAGS}" CACHE STRING "" FORCE)
set(OPENGL_LIBRARIES /usr/lib/libGLESv2.so)
set(USING_GLES2 ON)
set(ARMV7 ON)
set(USE_WAYLAND_WSI OFF)
set(USING_FBDEV ON)
set(USING_X11_VULKAN OFF)
Although PPSSPP compiled, it fails at run time:
I: VulkanLoader.cpp:264: VulkanMayBeAvailable: Device allowed ('SDL:Linux')
I: VulkanLoader.cpp:280: Vulkan loader: Library not available
DEBUG: Vulkan is not available, not using Vulkan.
I: Config.cpp:517: Longest display side: -1 pixels. Choosing scale 1
24:50:032 Core/Config.cpp:1188 I[LOADER]: Loading controller config: /home/pi/.config/ppsspp/PSP/SYSTEM/controls.ini
24:50:038 UI/NativeApp.cpp:389 E[LOADER]: Failed graphics backends: OPENGL,ALL,ALL
24:50:038 Core/Config.cpp:599 E[LOADER]: Graphics backend failed for 0, trying another
24:50:038 Core/Config.cpp:624 E[LOADER]: All graphics backends failed
24:50:048 Core/Config.cpp:1273 I[LOADER]: Config saved (got storage permission): '/home/pi/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
24:50:049 Core/Config.cpp:1286 I[LOADER]: Controller config saved: /home/pi/.config/ppsspp/PSP/SYSTEM/controls.ini
Pixels: 3840 x 2160
Virtual pixels: 3840 x 2160
ERROR: EGL Error EGL_NOT_INITIALIZED detected in file /home/pi/pes-build/ppsspp/SDL/SDLGLGraphicsContext.cpp at line 65 (0x3001)
EGL ERROR: Unable to initialize EGL display.
ERROR: EGL Error EGL_NOT_INITIALIZED detected in file /home/pi/pes-build/ppsspp/SDL/SDLGLGraphicsContext.cpp at line 239 (0x3001)
EGL ERROR: Unable to find a usable EGL config.
EGL_Init() failed
GL init error ''
loading control pad mappings from gamecontrollerdb.txt: SUCCESS!
Segmentation fault (core dumped)
Is there any workaround for this?
I've not found a way to make it work sadly. My next approach was going to be to install an X desktop, but I was hoping to avoid this.
Is it possible this is related to #12474?
-[Unknown]
Apologies for the delay in replying, the Raspberry Pi 4 I was using was on loan from a friend. I now however, have my own Raspberry Pi 4 so I've spent some more time trying to get PPSPP working under Arch Linux (as tried above).
The original issue remains sadly. I have also tried installing an X windows desktop (Xfce) and I get these errors instead:
I: VulkanLoader.cpp:272: VulkanMayBeAvailable: Device allowed ('SDL:Linux')
I: VulkanLoader.cpp:279: VulkanMayBeAvailable: Library loaded ('libvulkan.so')
I: VulkanLoader.cpp:332: VulkanMayBeAvailable: Enumerating instance extensions
I: VulkanLoader.cpp:343: VulkanMayBeAvailable: Instance extension count: 2
I: VulkanLoader.cpp:351: VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_report (00000009)
I: VulkanLoader.cpp:351: VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_utils (00000001)
E: VulkanLoader.cpp:369: Surface extension not found
DEBUG: Vulkan is not available, not using Vulkan.
I: Config.cpp:520: Longest display side: -1 pixels. Choosing scale 1
28:42:208 UI/NativeApp.cpp:401 E[LOADER]: Failed graphics backends: OPENGL,ALL,ALL,ALL,ALL,ALL,ALL,ALL,ALL
28:42:208 Core/Config.cpp:602 E[LOADER]: Graphics backend failed for 0, trying another
28:42:208 Core/Config.cpp:627 E[LOADER]: All graphics backends failed
Pixels: 960 x 544
Virtual pixels: 960 x 544
I: http_client.cpp:525: Completed downloading http://www.ppsspp.org/version.json to memory
ERROR: EGL Error EGL_BAD_ALLOC detected in file /home/pi/pes-build/ppsspp/SDL/SDLGLGraphicsContext.cpp at line 259 (0x3003)
EGL ERROR: Unable to create EGL surface!
EGL_Init() failed
GL init error ''
loading control pad mappings from gamecontrollerdb.txt: SUCCESS!
I: NativeApp.cpp:798: NativeInitGraphics
Segmentation fault (core dumped)
Here is some of the output from glxinfo
in case it helps:
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
GLX_ARB_create_context, GLX_ARB_create_context_no_error,
GLX_ARB_create_context_profile, GLX_ARB_fbconfig_float,
GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample,
GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile,
GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB,
GLX_EXT_import_context, GLX_EXT_libglvnd, GLX_EXT_no_config_context,
GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer, GLX_OML_swap_method,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
GLX_SGI_swap_control
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_context_flush_control, GLX_ARB_create_context,
GLX_ARB_create_context_no_error, GLX_ARB_create_context_profile,
GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile,
GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float,
GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context,
GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
GLX_ARB_create_context, GLX_ARB_create_context_no_error,
GLX_ARB_create_context_profile, GLX_ARB_fbconfig_float,
GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile,
GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float,
GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context,
GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer,
GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
GLX_SGI_swap_control, GLX_SGI_video_sync
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Broadcom (0x14e4)
Device: V3D 4.2 (0xffffffff)
Version: 20.0.5
Accelerated: yes
Video memory: 3723MB
Unified memory: yes
Preferred profile: compat (0x2)
Max core profile version: 0.0
Max compat profile version: 2.1
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.1
OpenGL vendor string: Broadcom
OpenGL renderer string: V3D 4.2
OpenGL version string: 2.1 Mesa 20.0.5
OpenGL shading language version string: 1.20
OpenGL extensions:
GL_AMD_conservative_depth, GL_AMD_multi_draw_indirect,
GL_AMD_shader_trinary_minmax, GL_AMD_texture_texture4,
GL_APPLE_packed_pixels, GL_ARB_ES2_compatibility,
GL_ARB_ES3_compatibility, GL_ARB_arrays_of_arrays, GL_ARB_base_instance,
GL_ARB_buffer_storage, GL_ARB_clear_buffer_object,
GL_ARB_color_buffer_float, GL_ARB_compressed_texture_pixel_storage,
GL_ARB_compute_shader, GL_ARB_compute_variable_group_size,
GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_debug_output,
GL_ARB_depth_buffer_float, GL_ARB_depth_texture, GL_ARB_draw_buffers,
GL_ARB_draw_elements_base_vertex, GL_ARB_draw_indirect,
GL_ARB_draw_instanced, GL_ARB_explicit_attrib_location,
GL_ARB_explicit_uniform_location, GL_ARB_fragment_coord_conventions,
GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments,
GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,
GL_ARB_get_program_binary, GL_ARB_get_texture_sub_image,
GL_ARB_half_float_pixel, GL_ARB_half_float_vertex,
GL_ARB_instanced_arrays, GL_ARB_internalformat_query,
GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata,
GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind,
GL_ARB_multi_draw_indirect, GL_ARB_multisample, GL_ARB_multitexture,
GL_ARB_occlusion_query, GL_ARB_occlusion_query2,
GL_ARB_parallel_shader_compile, GL_ARB_pixel_buffer_object,
GL_ARB_point_parameters, GL_ARB_point_sprite,
GL_ARB_program_interface_query, GL_ARB_provoking_vertex,
GL_ARB_robustness, GL_ARB_sampler_objects, GL_ARB_separate_shader_objects,
GL_ARB_shader_atomic_counter_ops, GL_ARB_shader_atomic_counters,
GL_ARB_shader_bit_encoding, GL_ARB_shader_image_load_store,
GL_ARB_shader_image_size, GL_ARB_shader_objects,
GL_ARB_shader_storage_buffer_object, GL_ARB_shader_texture_lod,
GL_ARB_shading_language_100, GL_ARB_shading_language_420pack,
GL_ARB_shading_language_include, GL_ARB_shading_language_packing,
GL_ARB_shadow, GL_ARB_stencil_texturing, GL_ARB_sync,
GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar,
GL_ARB_texture_env_dot3, GL_ARB_texture_float, GL_ARB_texture_gather,
GL_ARB_texture_mirrored_repeat, GL_ARB_texture_multisample,
GL_ARB_texture_non_power_of_two, GL_ARB_texture_query_levels,
GL_ARB_texture_query_lod, GL_ARB_texture_rectangle, GL_ARB_texture_rg,
GL_ARB_texture_rgb10_a2ui, GL_ARB_texture_stencil8,
GL_ARB_texture_storage, GL_ARB_texture_storage_multisample,
GL_ARB_texture_swizzle, GL_ARB_transform_feedback2,
GL_ARB_transform_feedback_instanced, GL_ARB_transpose_matrix,
GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_object,
GL_ARB_vertex_attrib_binding, GL_ARB_vertex_buffer_object,
GL_ARB_vertex_program, GL_ARB_vertex_shader,
GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_window_pos,
GL_ATI_blend_equation_separate, GL_ATI_draw_buffers,
GL_ATI_fragment_shader, GL_ATI_separate_stencil,
GL_ATI_texture_env_combine3, GL_ATI_texture_float,
GL_EXT_EGL_image_storage, GL_EXT_EGL_sync, GL_EXT_abgr, GL_EXT_bgra,
GL_EXT_blend_color, GL_EXT_blend_equation_separate,
GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_compiled_vertex_array, GL_EXT_copy_texture,
GL_EXT_direct_state_access, GL_EXT_draw_buffers2, GL_EXT_draw_instanced,
GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_blit,
GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled,
GL_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB,
GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4,
GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil,
GL_EXT_packed_float, GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object,
GL_EXT_point_parameters, GL_EXT_provoking_vertex, GL_EXT_rescale_normal,
GL_EXT_secondary_color, GL_EXT_separate_specular_color,
GL_EXT_shader_integer_mix, GL_EXT_shadow_funcs, GL_EXT_stencil_two_side,
GL_EXT_stencil_wrap, GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D,
GL_EXT_texture_array, GL_EXT_texture_buffer_object,
GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp,
GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
GL_EXT_texture_env_dot3, GL_EXT_texture_integer, GL_EXT_texture_lod_bias,
GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_texture_sRGB,
GL_EXT_texture_sRGB_decode, GL_EXT_texture_shared_exponent,
GL_EXT_texture_snorm, GL_EXT_texture_swizzle, GL_EXT_transform_feedback,
GL_EXT_vertex_array, GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip,
GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate,
GL_KHR_context_flush_control, GL_KHR_debug, GL_KHR_no_error,
GL_KHR_parallel_shader_compile, GL_KHR_texture_compression_astc_ldr,
GL_KHR_texture_compression_astc_sliced_3d, GL_MESA_pack_invert,
GL_MESA_shader_integer_functions, GL_MESA_texture_signed_rgba,
GL_MESA_window_pos, GL_NV_blend_square, GL_NV_fog_distance,
GL_NV_light_max_exponent, GL_NV_packed_depth_stencil,
GL_NV_primitive_restart, GL_NV_texgen_reflection,
GL_NV_texture_env_combine4, GL_NV_texture_rectangle, GL_OES_EGL_image,
GL_OES_read_format, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp,
GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 20.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
GL_APPLE_texture_max_level, GL_EXT_EGL_image_storage,
GL_EXT_base_instance, GL_EXT_blend_minmax, GL_EXT_buffer_storage,
GL_EXT_color_buffer_float, GL_EXT_compressed_ETC1_RGB8_sub_texture,
GL_EXT_discard_framebuffer, GL_EXT_draw_buffers,
GL_EXT_draw_elements_base_vertex, GL_EXT_float_blend, GL_EXT_frag_depth,
GL_EXT_geometry_point_size, GL_EXT_geometry_shader,
GL_EXT_map_buffer_range, GL_EXT_multi_draw_arrays,
GL_EXT_occlusion_query_boolean, GL_EXT_primitive_bounding_box,
GL_EXT_read_format_bgra, GL_EXT_sRGB_write_control,
GL_EXT_separate_shader_objects, GL_EXT_shader_implicit_conversions,
GL_EXT_shader_integer_mix, GL_EXT_shader_io_blocks,
GL_EXT_texture_border_clamp, GL_EXT_texture_format_BGRA8888,
GL_EXT_texture_query_lod, GL_EXT_texture_rg, GL_EXT_texture_sRGB_decode,
GL_EXT_texture_type_2_10_10_10_REV, GL_EXT_unpack_subimage,
GL_KHR_context_flush_control, GL_KHR_debug, GL_KHR_no_error,
GL_KHR_parallel_shader_compile, GL_KHR_texture_compression_astc_ldr,
GL_KHR_texture_compression_astc_sliced_3d, GL_MESA_framebuffer_flip_y,
GL_MESA_shader_integer_functions, GL_NV_draw_buffers,
GL_NV_fbo_color_attachments, GL_NV_image_formats, GL_NV_read_buffer,
GL_NV_read_depth, GL_NV_read_depth_stencil, GL_NV_read_stencil,
GL_OES_EGL_image, GL_OES_EGL_image_external,
GL_OES_EGL_image_external_essl3, GL_OES_EGL_sync,
GL_OES_compressed_ETC1_RGB8_texture, GL_OES_depth24, GL_OES_depth_texture,
GL_OES_depth_texture_cube_map, GL_OES_draw_elements_base_vertex,
GL_OES_element_index_uint, GL_OES_fbo_render_mipmap,
GL_OES_geometry_point_size, GL_OES_geometry_shader,
GL_OES_get_program_binary, GL_OES_mapbuffer, GL_OES_packed_depth_stencil,
GL_OES_primitive_bounding_box, GL_OES_required_internalformat,
GL_OES_rgb8_rgba8, GL_OES_shader_image_atomic, GL_OES_shader_io_blocks,
GL_OES_standard_derivatives, GL_OES_stencil8, GL_OES_surfaceless_context,
GL_OES_texture_3D, GL_OES_texture_border_clamp, GL_OES_texture_float,
GL_OES_texture_half_float, GL_OES_texture_half_float_linear,
GL_OES_texture_npot, GL_OES_texture_stencil8,
GL_OES_texture_storage_multisample_2d_array, GL_OES_vertex_array_object,
GL_OES_vertex_half_float
Mesa version is: 20.0.5
That looks exactly like #12474.
See here specifically: https://github.com/hrydgard/ppsspp/issues/12474#issuecomment-569979614 And the Mesa issue: https://gitlab.freedesktop.org/mesa/mesa/issues/1976#note_285659
-[Unknown]
Ok, thanks.
Is there anything I can do to help resolve or debug the issue further for you?
Well, it sounds like the mesa team was wanting someone to set some breakpoints and find out if somehow we're asking for the same surface to be used with multiple EGL instances, because that's apparently the commit it stopped working on - only on pi4, though.
-[Unknown]
I've now managed to get PPSSPP to work without requiring an X11 desktop under Arch Linux on the Raspberry Pi 4.
Mesa upgraded to version 20.0.6-2. SDL2 upgraded to 2.0.12
Used the following cmake args:
-DARMV7=ON -DUSING_EGL=OFF -DUSING_GLES2=ON -DUSING_X11_VULKAN=OFF -DUSE_WAYLAND_WSI=OFF -DUSING_FBDEV=ON -DUSING_QT_UI='OFF' -DUSE_FFMPEG=yes -DUSE_SYSTEM_FFMPEG=yes
What happens?
Compilation failure under Arch Linux on Raspberry Pi 4 with SDL 2.0.10.
What should happen?
Successful compilation.
What hardware, operating system, and PPSSPP version? On desktop, GPU matters for graphical issues.
Raspberry Pi4, Arch Linux, PPSSPPP git clone.
Compilation error: