freedreno/a6xx: Expose SSBO/image for all shader stages

Now that we've removed the limitation of a single bindful IBO state, we
can expose IBO support on all shader stages.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20687>
This commit is contained in:
Rob Clark 2023-01-02 09:21:32 -08:00 committed by Marge Bot
parent a93d3f1498
commit 0c30e0fa00
3 changed files with 7 additions and 43 deletions

View file

@ -10,7 +10,6 @@ KHR-GL45.shader_image_load_store.basic-allFormats-store,Fail
KHR-GL45.shader_image_load_store.basic-allTargets-store,Fail
KHR-GL45.shading_language_420pack.binding_images,Fail
KHR-GL45.compute_shader.conditional-dispatching,Fail
KHR-GL45.vertex_attrib_binding.advanced-largeStrideAndOffsetsNewAndLegacyAPI,Fail
KHR-GL45.buffer_storage.map_persistent_draw,Fail
# Lots of errors like "[279] Check failed. Received: [3,0,0,2] instead of: [5,0,0,2]"
@ -35,12 +34,6 @@ KHR-GL45.texture_cube_map_array.color_depth_attachments,Fail
# Various limits we cannot or do not support:
KHR-GL45.limits.max_vertex_streams,Fail
# Shader compile fails:
KHR-GL45.shader_atomic_counter_ops_tests.ShaderAtomicCounterOpsExchangeTestCase,Fail
KHR-GL45.shader_atomic_counter_ops_tests.ShaderAtomicCounterOpsMinMaxTestCase,Fail
KHR-GL45.shader_atomic_counter_ops_tests.ShaderAtomicCounterOpsAdditionSubstractionTestCase,Fail
KHR-GL45.shader_atomic_counter_ops_tests.ShaderAtomicCounterOpsBitwiseTestCase,Fail
# MESA: warning: sample averaging on fallback z24s8 blit when we shouldn't.
KHR-GL45.direct_state_access.renderbuffers_storage_multisample,Fail

View file

@ -7,10 +7,8 @@ KHR-GL45.gpu_shader_fp64.builtin.mod_dvec3,Fail
KHR-GL45.gpu_shader_fp64.builtin.mod_dvec4,Fail
KHR-GL45.shader_subroutine.control_flow_and_returned_subroutine_values_used_as_subroutine_input,Fail
KHR-GL45.shader_image_load_store.basic-allFormats-store,Fail
KHR-GL45.shader_image_load_store.basic-allTargets-store,Fail
KHR-GL45.shading_language_420pack.binding_images,Fail
KHR-GL45.compute_shader.conditional-dispatching,Fail
KHR-GL45.vertex_attrib_binding.advanced-largeStrideAndOffsetsNewAndLegacyAPI,Fail
KHR-GL45.buffer_storage.map_persistent_draw,Fail
# Lots of errors like "[279] Check failed. Received: [3,0,0,2] instead of: [5,0,0,2]"
@ -35,12 +33,6 @@ KHR-GL45.texture_cube_map_array.color_depth_attachments,Fail
# Various limits we cannot or do not support:
KHR-GL45.limits.max_vertex_streams,Fail
# Shader compile fails:
KHR-GL45.shader_atomic_counter_ops_tests.ShaderAtomicCounterOpsExchangeTestCase,Fail
KHR-GL45.shader_atomic_counter_ops_tests.ShaderAtomicCounterOpsMinMaxTestCase,Fail
KHR-GL45.shader_atomic_counter_ops_tests.ShaderAtomicCounterOpsAdditionSubstractionTestCase,Fail
KHR-GL45.shader_atomic_counter_ops_tests.ShaderAtomicCounterOpsBitwiseTestCase,Fail
# MESA: warning: sample averaging on fallback z24s8 blit when we shouldn't.
KHR-GL45.direct_state_access.renderbuffers_storage_multisample,Fail
@ -122,11 +114,6 @@ spec@arb_point_sprite@arb_point_sprite-interactions 1.0,Fail
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex,Fail
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex@'vs_input2[1][0]' on GL_PROGRAM_INPUT,Fail
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex@'vs_input2' on GL_PROGRAM_INPUT,Fail
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceiv,Fail
spec@arb_program_interface_query@arb_program_interface_query-resource-query,Fail
spec@arb_program_interface_query@arb_program_interface_query-resource-query@GL_ATOMIC_COUNTER_BUFFER,Fail
spec@arb_program_interface_query@arb_program_interface_query-resource-query@GL_BUFFER_VARIABLE,Fail
spec@arb_program_interface_query@arb_program_interface_query-resource-query@GL_SHADER_STORAGE_BLOCK,Fail
spec@arb_sample_shading@samplemask 2@0.500000 mask_in_one,Fail
spec@arb_sample_shading@samplemask 2@1.000000 mask_in_one,Fail
spec@arb_sample_shading@samplemask 2 all@0.500000 mask_in_one,Fail
@ -156,34 +143,12 @@ spec@arb_sample_shading@samplemask 2@noms partition,Fail
spec@arb_sample_shading@samplemask 4 all@noms partition,Fail
spec@arb_sample_shading@samplemask 4@noms partition,Fail
spec@arb_shader_image_load_store@execution@image-array-out-of-bounds-access-load,Crash
# These 3 fails started to happen after piglit uprev with commit
# 0ef03f824d1833a853d1a20b4be121089bb9246c
spec@arb_shader_image_load_store@qualifiers,Fail
spec@arb_shader_image_load_store@qualifiers@r8/permissive layout qualifiers/permissive access qualifiers/permissive binding test,Fail
spec@arb_shader_image_load_store@qualifiers@r8/strict layout qualifiers/permissive access qualifiers/permissive binding test,Fail
spec@arb_shader_storage_buffer_object@array-ssbo-auto-binding,Fail
spec@arb_shader_storage_buffer_object@linker@instance-matching-shader-storage-blocks-member-array-size-mismatch,Fail
# Test bug: https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/601#note_1154259
# "Failed to link:
# error: Too many tessellation control shader atomic counters"
spec@arb_tessellation_shader@execution@invocation-counting-even,Fail
spec@arb_tessellation_shader@execution@invocation-counting-odd,Fail
# Test bug: https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/601#note_1154259
# "Failed to link:
# error: Too many tessellation control shader atomic counters"
spec@arb_tessellation_shader@execution@tcs-output-unmatched,Fail
spec@arb_tessellation_shader@execution@tcs-primitiveid,Fail
# Test bug: https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/601#note_1154259
# "Failed to link:
# error: Too many tessellation control shader atomic counters"
spec@arb_tessellation_shader@execution@tes-primitiveid,Fail
# ir3_nir_lower_tess.c:251: lower_block_to_explicit_output: Assertion `util_is_power_of_two_nonzero(nir_intrinsic_write_mask(intr) + 1)' failed.
spec@arb_tessellation_shader@execution@tcs-input-read-mat,Crash

View file

@ -719,7 +719,13 @@ fd_screen_get_shader_param(struct pipe_screen *pscreen,
(1 << PIPE_SHADER_IR_TGSI));
case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS:
case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
if (is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen)) {
if (is_a6xx(screen)) {
if (param == PIPE_SHADER_CAP_MAX_SHADER_BUFFERS) {
return IR3_BINDLESS_SSBO_COUNT;
} else {
return IR3_BINDLESS_IMAGE_COUNT;
}
} else if (is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen)) {
/* a5xx (and a4xx for that matter) has one state-block
* for compute-shader SSBO's and another that is shared
* by VS/HS/DS/GS/FS.. so to simplify things for now