crocus: fix SIGSEGV crash at pbo compressed teximage
This affects piglit/bin/ext_texture_array-compressed teximage pbo -auto -fbo Routine create_surface() at src/gallium/drivers/crocus/crocus_state.c does not suppport compressed format and returns NULL in that case. Since MR https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34054 routine st_try_pbo_compressed_texsubimage() at src/mesa/state_tracker/st_cb_texture.c is missing a test via pipe->create_surface() and does not fallback to _mesa_store_compressed_texsubimage() which causes a SIGSEGV abort. Regression is solved by introducing the variable surface_no_compress at struct pipe_caps, causing the fallback. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13426 Signed-off-by: GKraats <vd.kraats@hccnet.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37150>
This commit is contained in:
@@ -341,6 +341,8 @@ Capability about the features and limits of the driver/GPU.
|
||||
* ``pipe_caps.generate_mipmap``: Indicates whether pipe_context::generate_mipmap
|
||||
is supported.
|
||||
* ``pipe_caps.string_marker``: Whether pipe->emit_string_marker() is supported.
|
||||
* ``pipe_caps.surface_no_compress``: Indicates that
|
||||
pipe_context::create_surface does not support compression
|
||||
* ``pipe_caps.surface_reinterpret_blocks``: Indicates whether
|
||||
pipe_context::create_surface supports reinterpreting a texture as a surface
|
||||
of a format with different block width/height (but same block size in bits).
|
||||
|
||||
Reference in New Issue
Block a user