Mesa (main): d3d12: Set SSBO support caps

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Dec 28 00:22:18 UTC 2021


Module: Mesa
Branch: main
Commit: 0c5fde39e48e9e2adf24308ac7f6489d29a625fa
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0c5fde39e48e9e2adf24308ac7f6489d29a625fa

Author: Jesse Natalie <jenatali at microsoft.com>
Date:   Tue Dec 21 16:25:01 2021 -0800

d3d12: Set SSBO support caps

Reviewed-by: Sil Vilerino <sivileri at microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294>

---

 src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt    | 61 ++++++----------------
 .../drivers/d3d12/ci/d3d12-quick_shader.txt        | 53 ++-----------------
 src/gallium/drivers/d3d12/d3d12_screen.cpp         | 11 ++--
 3 files changed, 27 insertions(+), 98 deletions(-)

diff --git a/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt b/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt
index d0e6379bfd1..33981a8691f 100644
--- a/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt
+++ b/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt
@@ -1865,25 +1865,13 @@ spec/arb_point_sprite/arb_point_sprite-mipmap: fail
 spec/arb_post_depth_coverage/arb_post_depth_coverage-basic: skip
 spec/arb_post_depth_coverage/arb_post_depth_coverage-multisampling: skip
 spec/arb_post_depth_coverage/arb_post_depth_coverage-sample-shading: skip
-spec/arb_program_interface_query/arb_program_interface_query-getprograminterfaceiv/gl_max_name_length on gl_atomic_counter_buffer: skip
-spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceindex/'dummy' on gl_atomic_counter_buffer: skip
 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-getprogramresourceindex/'vs_input2[1][0]' on gl_program_input: fail
 spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/compute on gl_compute_subroutine_uniform: skip
-spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/fs_buffer_block on gl_shader_storage_block: skip
-spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/fs_counter on gl_atomic_counter_buffer: skip
-spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/fs_uni_block on gl_uniform_block: skip
-spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/gs_buf_var on gl_buffer_variable: skip
-spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/gs_buffer_block on gl_shader_storage_block: skip
 spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/tcs_patch on gl_program_output: skip
 spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/tess_control on gl_tess_control_subroutine_uniform: skip
-spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/vs_buffer_block on gl_shader_storage_block: skip
-spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/vs_uni_block on gl_uniform_block: skip
-spec/arb_program_interface_query/arb_program_interface_query-getprogramresourcename/gl_atomic_counter_buffer: skip
 spec/arb_program_interface_query/arb_program_interface_query-resource-location/test_subroutine_stages_compute: skip
 spec/arb_program_interface_query/arb_program_interface_query-resource-location/test_subroutine_stages_tcs_tes: skip
-spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_atomic_counter_buffer: skip
-spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_buffer_variable: skip
 spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_compute_subroutine: skip
 spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_compute_subroutine_uniform: skip
 spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_input(cs): skip
@@ -1896,7 +1884,6 @@ spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_p
 spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_output(tcs,tes): skip
 spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_output(tcs,tes,gs): skip
 spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_output(tes): skip
-spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_shader_storage_block: skip
 spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_tess_control_subroutine: skip
 spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_tess_control_subroutine_uniform: skip
 spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_tess_evaluation_subroutine: skip
@@ -1982,19 +1969,18 @@ spec/arb_separate_shader_objects/validateprogrampipeline/only tes from tes/tcs p
 spec/arb_separate_shader_objects/validateprogrampipeline/tcs splitting a vs/gs pipeline: skip
 spec/arb_separate_shader_objects/validateprogrampipeline/tes splitting a vs/gs program: skip
 spec/arb_separate_shader_objects/validateprogrampipeline/tes/tcs without vs: skip
-spec/arb_shader_atomic_counters/active-counters: skip
-spec/arb_shader_atomic_counters/array-indexing: skip
-spec/arb_shader_atomic_counters/buffer-binding: skip
-spec/arb_shader_atomic_counters/default-partition: skip
-spec/arb_shader_atomic_counters/fragment-discard: skip
-spec/arb_shader_atomic_counters/function-argument: skip
-spec/arb_shader_atomic_counters/max-counters: skip
-spec/arb_shader_atomic_counters/minmax: skip
-spec/arb_shader_atomic_counters/multiple-defs: skip
-spec/arb_shader_atomic_counters/respecify-buffer: skip
-spec/arb_shader_atomic_counters/semantics: skip
-spec/arb_shader_atomic_counters/unique-id: skip
-spec/arb_shader_atomic_counters/unused-result: skip
+spec/arb_shader_atomic_counters/array-indexing: fail
+spec/arb_shader_atomic_counters/max-counters/combined test above maximum number of atomic counter buffers: skip
+spec/arb_shader_atomic_counters/semantics/fragment shader atomic built-in semantics: fail
+spec/arb_shader_atomic_counters/semantics/geometry shader atomic built-in semantics: fail
+spec/arb_shader_atomic_counters/semantics/tessellation control shader atomic built-in semantics: skip
+spec/arb_shader_atomic_counters/semantics/tessellation evaluation shader atomic built-in semantics: skip
+spec/arb_shader_atomic_counters/semantics/vertex shader atomic built-in semantics: fail
+spec/arb_shader_atomic_counters/unused-result/fragment shader atomic built-in semantics: fail
+spec/arb_shader_atomic_counters/unused-result/geometry shader atomic built-in semantics: fail
+spec/arb_shader_atomic_counters/unused-result/tessellation control shader atomic built-in semantics: skip
+spec/arb_shader_atomic_counters/unused-result/tessellation evaluation shader atomic built-in semantics: skip
+spec/arb_shader_atomic_counters/unused-result/vertex shader atomic built-in semantics: fail
 spec/arb_shader_draw_parameters/baseinstance: skip
 spec/arb_shader_draw_parameters/baseinstance-indirect: skip
 spec/arb_shader_draw_parameters/basevertex: skip
@@ -2032,21 +2018,7 @@ spec/arb_shader_image_load_store/shader-mem-barrier: skip
 spec/arb_shader_image_load_store/state: skip
 spec/arb_shader_image_load_store/unused: skip
 spec/arb_shader_image_size/builtin: skip
-spec/arb_shader_storage_buffer_object/array-ssbo-binding: skip
-spec/arb_shader_storage_buffer_object/deletebuffers: skip
-spec/arb_shader_storage_buffer_object/getintegeri_v: skip
-spec/arb_shader_storage_buffer_object/issue1258: skip
-spec/arb_shader_storage_buffer_object/layout-std140-write-shader: skip
-spec/arb_shader_storage_buffer_object/layout-std430-write-shader: skip
-spec/arb_shader_storage_buffer_object/max-ssbo-size/fs: skip
-spec/arb_shader_storage_buffer_object/max-ssbo-size/fsexceed: skip
-spec/arb_shader_storage_buffer_object/max-ssbo-size/vs: skip
-spec/arb_shader_storage_buffer_object/max-ssbo-size/vsexceed: skip
-spec/arb_shader_storage_buffer_object/maxblocks: skip
 spec/arb_shader_storage_buffer_object/minmax: skip
-spec/arb_shader_storage_buffer_object/program-interface-query: skip
-spec/arb_shader_storage_buffer_object/rendering: skip
-spec/arb_shader_storage_buffer_object/ssbo-binding: skip
 spec/arb_shader_texture_image_samples/builtin-image: skip
 spec/arb_shader_texture_image_samples/texturesamples/fs-isampler2dms-16: skip
 spec/arb_shader_texture_image_samples/texturesamples/fs-isampler2dms-2: skip
@@ -2156,6 +2128,7 @@ spec/arb_shader_texture_image_samples/texturesamples/vs-usampler2dmsarray-32: sk
 spec/arb_shader_texture_image_samples/texturesamples/vs-usampler2dmsarray-4: skip
 spec/arb_shader_texture_image_samples/texturesamples/vs-usampler2dmsarray-6: skip
 spec/arb_shader_texture_image_samples/texturesamples/vs-usampler2dmsarray-8: skip
+spec/arb_shading_language_420pack/active sampler conflict: fail
 spec/arb_shading_language_420pack/binding layout: fail
 spec/arb_sparse_buffer/basic: skip
 spec/arb_sparse_buffer/buffer-data: skip
@@ -4738,10 +4711,10 @@ wgl/wgl-sanity: skip
 summary:
        name:  results
        ----  --------
-       pass:    14257
-       fail:      473
+       pass:    14313
+       fail:      481
       crash:       68
-       skip:     4176
+       skip:     4141
     timeout:        0
        warn:       10
  incomplete:        0
@@ -4750,4 +4723,4 @@ summary:
     changes:        0
       fixes:        0
 regressions:        0
-      total:    18994
+      total:    19023
diff --git a/src/gallium/drivers/d3d12/ci/d3d12-quick_shader.txt b/src/gallium/drivers/d3d12/ci/d3d12-quick_shader.txt
index 3f005fa22b5..9c86a325d20 100644
--- a/src/gallium/drivers/d3d12/ci/d3d12-quick_shader.txt
+++ b/src/gallium/drivers/d3d12/ci/d3d12-quick_shader.txt
@@ -72,10 +72,6 @@ spec/amd_shader_trinary_minmax/execution/built-in-functions/tcs-min3-vec2-vec2-v
 spec/amd_shader_trinary_minmax/execution/built-in-functions/tcs-min3-vec3-vec3-vec3: skip
 spec/amd_shader_trinary_minmax/execution/built-in-functions/tcs-min3-vec4-vec4-vec4: skip
 spec/amd_texture_texture4/execution/texture4: skip
-spec/arb_arrays_of_arrays/execution/atomic_counters/fs-indirect-index: skip
-spec/arb_arrays_of_arrays/execution/atomic_counters/fs-simple-inc-dec-read: skip
-spec/arb_arrays_of_arrays/execution/atomic_counters/vs-indirect-index: skip
-spec/arb_arrays_of_arrays/execution/atomic_counters/vs-simple-inc-dec-read: skip
 spec/arb_arrays_of_arrays/execution/image_store/basic-imagestore-const-uniform-index: skip
 spec/arb_arrays_of_arrays/execution/image_store/basic-imagestore-mixed-const-non-const-uniform-index: skip
 spec/arb_arrays_of_arrays/execution/image_store/basic-imagestore-mixed-const-non-const-uniform-index2: skip
@@ -105,8 +101,6 @@ spec/arb_arrays_of_arrays/execution/ubo/fs-const: fail
 spec/arb_arrays_of_arrays/execution/ubo/fs-const-explicit-binding: fail
 spec/arb_arrays_of_arrays/execution/ubo/fs-mixed-const-nonconst: skip
 spec/arb_arrays_of_arrays/execution/ubo/fs-nonconst: skip
-spec/arb_arrays_of_arrays/linker/vs-to-fs-atomic-counter: skip
-spec/arb_arrays_of_arrays/linker/vs-to-fs-atomic-counter-mismatch: skip
 spec/arb_bindless_texture/execution/images/basic-arithmetic-uvec2-imagestore: skip
 spec/arb_bindless_texture/execution/images/basic-imageatomicexchange: skip
 spec/arb_bindless_texture/execution/images/basic-imagestore: skip
@@ -3657,11 +3651,8 @@ spec/arb_separate_shader_objects/linker/pervertex-pointsize-vs-out-tcs: skip
 spec/arb_separate_shader_objects/linker/pervertex-position-tcs-out-tes: skip
 spec/arb_separate_shader_objects/linker/pervertex-position-tes-out-gs: skip
 spec/arb_separate_shader_objects/linker/pervertex-position-vs-out-tcs: skip
-spec/arb_shader_atomic_counter_ops/execution/add: skip
-spec/arb_shader_atomic_counter_ops/execution/all_touch_test: skip
-spec/arb_shader_atomic_counters/execution/fs-layout: skip
-spec/arb_shader_atomic_counters/execution/sparse-binding: skip
-spec/arb_shader_atomic_counters/execution/vs-simple-inc-dec-read: skip
+spec/arb_shader_atomic_counter_ops/execution/add: warn
+spec/arb_shader_atomic_counter_ops/execution/all_touch_test: warn
 spec/arb_shader_atomic_counters/linker/different-bindings-atomic-counter: skip
 spec/arb_shader_ballot/execution/fs-ballot: skip
 spec/arb_shader_ballot/execution/fs-ballot-if-else: skip
@@ -4008,42 +3999,8 @@ spec/arb_shader_precision/vs-sqrt-float: skip
 spec/arb_shader_precision/vs-sqrt-vec2: skip
 spec/arb_shader_precision/vs-sqrt-vec3: skip
 spec/arb_shader_precision/vs-sqrt-vec4: skip
-spec/arb_shader_storage_buffer_object/execution/basic: skip
-spec/arb_shader_storage_buffer_object/execution/implicitly-sized-array-length-1: skip
-spec/arb_shader_storage_buffer_object/execution/implicitly-sized-array-length-2: skip
-spec/arb_shader_storage_buffer_object/execution/implicitly-sized-array-length-3: skip
-spec/arb_shader_storage_buffer_object/execution/implicitly-sized-array-length-4: skip
 spec/arb_shader_storage_buffer_object/execution/indirect: skip
-spec/arb_shader_storage_buffer_object/execution/memory-layouts-struct-deref: skip
-spec/arb_shader_storage_buffer_object/execution/ssbo-atomicadd-int: skip
 spec/arb_shader_storage_buffer_object/execution/ssbo-atomiccompswap-int: skip
-spec/arb_shader_storage_buffer_object/execution/ssbo-atomicexchange-int: skip
-spec/arb_shader_storage_buffer_object/execution/ssbo-atomicmax-int: skip
-spec/arb_shader_storage_buffer_object/execution/ssbo-atomicmax-uint: skip
-spec/arb_shader_storage_buffer_object/execution/ssbo-atomicmin-int: skip
-spec/arb_shader_storage_buffer_object/execution/ssbo-atomicmin-uint: skip
-spec/arb_shader_storage_buffer_object/linker/buffer-variable-indirect-indexing: skip
-spec/arb_shader_storage_buffer_object/linker/copy-large-array: skip
-spec/arb_shader_storage_buffer_object/linker/copy-large-struct: skip
-spec/arb_shader_storage_buffer_object/linker/implicit_size_array_member: skip
-spec/arb_shader_storage_buffer_object/linker/instance-matching-shader-storage-blocks-array-size-mismatch: skip
-spec/arb_shader_storage_buffer_object/linker/instance-matching-shader-storage-blocks-binding-qualifier-mismatch: skip
-spec/arb_shader_storage_buffer_object/linker/instance-matching-shader-storage-blocks-member-array-size-mismatch: skip
-spec/arb_shader_storage_buffer_object/linker/instance-matching-shader-storage-blocks-member-count-mismatch: skip
-spec/arb_shader_storage_buffer_object/linker/instance-matching-shader-storage-blocks-member-name-mismatch: skip
-spec/arb_shader_storage_buffer_object/linker/instance-matching-shader-storage-blocks-member-order-mismatch: skip
-spec/arb_shader_storage_buffer_object/linker/instance-matching-shader-storage-blocks-member-qualifier-mismatch: skip
-spec/arb_shader_storage_buffer_object/linker/instance-matching-shader-storage-blocks-member-type-mismatch: skip
-spec/arb_shader_storage_buffer_object/linker/instance-matching-shader-storage-blocks-memory-qualifier-mismatch: skip
-spec/arb_shader_storage_buffer_object/linker/instance-matching-shader-storage-blocks-packaging-qualifier-mismatch: skip
-spec/arb_shader_storage_buffer_object/linker/non_integral_size_array_member: skip
-spec/arb_shader_storage_buffer_object/linker/shader-storage-block-different-def: skip
-spec/arb_shader_storage_buffer_object/linker/shader-storage-block-different-def-2: skip
-spec/arb_shader_storage_buffer_object/linker/shader-storage-block-different-def-3: skip
-spec/arb_shader_storage_buffer_object/linker/shader-storage-block-different-size: skip
-spec/arb_shader_storage_buffer_object/linker/sized_arrays_of_arrays_member: skip
-spec/arb_shader_storage_buffer_object/linker/unsized_array_member: skip
-spec/arb_shader_storage_buffer_object/linker/unsized_arrays_of_arrays_member: skip
 spec/arb_shader_texture_lod/execution/glsl-fs-shadow2dgradarb-07: fail
 spec/arb_shader_texture_lod/execution/glsl-fs-shadow2dgradarb-cumulative: fail
 spec/arb_shading_language_420pack/linker/different-bindings-image2d: skip
@@ -13086,12 +13043,12 @@ spec/oes_viewport_array/viewport-gs-writes-out-of-range: skip
 summary:
        name:  results
        ----  --------
-       pass:     7161
+       pass:     7204
        fail:       58
       crash:       27
-       skip:    12977
+       skip:    12932
     timeout:        0
-       warn:       23
+       warn:       25
  incomplete:        0
  dmesg-warn:        0
  dmesg-fail:        0
diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp
index e0f631494a9..24da072914a 100644
--- a/src/gallium/drivers/d3d12/d3d12_screen.cpp
+++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp
@@ -261,10 +261,8 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_TEXTURE_HALF_FLOAT_LINEAR:
       return 1;
 
-#if 0 /* TODO: Enable me. Enables GL_ARB_shader_storage_buffer_object */
    case PIPE_CAP_SHADER_BUFFER_OFFSET_ALIGNMENT:
-      return screen->max_feature_level >= D3D_FEATURE_LEVEL_10_0;
-#endif
+      return D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT;
 
    case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
       return 256;
@@ -451,10 +449,11 @@ d3d12_get_shader_param(struct pipe_screen *pscreen,
    case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
       return 32; /* arbitrary */
 
-#if 0
    case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS:
-      return 8; /* no clue */
-#endif
+      return
+         (screen->max_feature_level >= D3D_FEATURE_LEVEL_11_1 ||
+          screen->opts.ResourceBindingTier >= D3D12_RESOURCE_BINDING_TIER_3) ?
+         PIPE_MAX_SHADER_BUFFERS : D3D12_PS_CS_UAV_REGISTER_COUNT;
 
    case PIPE_SHADER_CAP_SUPPORTED_IRS:
       return 1 << PIPE_SHADER_IR_NIR;



More information about the mesa-commit mailing list