Module: Mesa Branch: main Commit: 9caea4c3e9ff245c05f77f2bf1d2eefcae0f49bd URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9caea4c3e9ff245c05f77f2bf1d2eefcae0f49bd
Author: Jesse Natalie <[email protected]> Date: Thu Nov 9 15:29:01 2023 -0800 d3d12: Enable ARB_enhanced_layouts and ARB_texture_mirror_clamp_to_edge Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156> --- docs/features.txt | 4 ++-- src/gallium/drivers/d3d12/ci/d3d12-quick_shader.txt | 17 +++++++++-------- src/gallium/drivers/d3d12/d3d12_screen.cpp | 2 ++ 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index 93eb15f183d..6c77e127126 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -197,7 +197,7 @@ GL 4.4, GLSL 4.40 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, v GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers) GL_ARB_buffer_storage DONE (freedreno, nv50, v3d, vc4, lima, panfrost, asahi, d3d12, softpipe, etnaviv, crocus) GL_ARB_clear_texture DONE (all drivers) - GL_ARB_enhanced_layouts DONE (freedreno/a3xx+, nv50, softpipe, crocus) + GL_ARB_enhanced_layouts DONE (freedreno/a3xx+, nv50, softpipe, crocus, d3d12) - compile-time constant expressions DONE - explicit byte offsets for blocks DONE - forced alignment within blocks DONE @@ -206,7 +206,7 @@ GL 4.4, GLSL 4.40 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, v - input/output block locations DONE GL_ARB_multi_bind DONE (all drivers) GL_ARB_query_buffer_object DONE (freedreno/a6xx) - GL_ARB_texture_mirror_clamp_to_edge DONE (freedreno, nv50, softpipe, v3d, panfrost, asahi, crocus) + GL_ARB_texture_mirror_clamp_to_edge DONE (freedreno, nv50, softpipe, v3d, panfrost, asahi, crocus, d3d12) GL_ARB_texture_stencil8 DONE (freedreno, nv50, softpipe, v3d, panfrost, d3d12, asahi) GL_ARB_vertex_type_10f_11f_11f_rev DONE (freedreno, nv50, softpipe, panfrost, d3d12, asahi, crocus) diff --git a/src/gallium/drivers/d3d12/ci/d3d12-quick_shader.txt b/src/gallium/drivers/d3d12/ci/d3d12-quick_shader.txt index d94ed40825b..319d2b44243 100644 --- a/src/gallium/drivers/d3d12/ci/d3d12-quick_shader.txt +++ b/src/gallium/drivers/d3d12/ci/d3d12-quick_shader.txt @@ -1,19 +1,16 @@ -spec@arb_gpu_shader_fp64@execution@vs-fs-explicit-locations,Crash spec@arb_gpu_shader_int64@execution@indirect-array-two-accesses,Fail spec@arb_separate_shader_objects@execution@layout-location-block-with-struct-member,Crash spec@arb_separate_shader_objects@execution@layout-location-struct-mixed-with-implicitly-assigned-varying,Crash spec@arb_shader_storage_buffer_object@execution@ssbo-atomiccompswap-int,Fail spec@arb_shader_texture_lod@execution@glsl-fs-shadow2dgradarb-07,Fail spec@arb_shader_texture_lod@execution@glsl-fs-shadow2dgradarb-cumulative,Fail -spec@arb_tessellation_shader@execution@dmat-vs-gs-tcs-tes,Crash +spec@arb_tessellation_shader@execution@dmat-vs-gs-tcs-tes,Fail spec@arb_tessellation_shader@execution@gs-primitiveid-instanced,Fail spec@arb_tessellation_shader@execution@tcs-output-unmatched,Crash spec@arb_tessellation_shader@execution@tcs-tes-levels-out-of-bounds-read,Crash spec@arb_tessellation_shader@execution@tcs-tes-levels-out-of-bounds-write,Crash spec@arb_tessellation_shader@execution@tcs-tes-max-in-out-patch-components,Crash spec@arb_tessellation_shader@execution@tes-primitiveid,Fail -spec@arb_tessellation_shader@execution@variable-indexing@tcs-input-array-dvec4-index-rd,Crash -spec@arb_tessellation_shader@execution@variable-indexing@tcs-output-array-dvec4-index-wr,Crash spec@arb_tessellation_shader@execution@variable-indexing@tcs-output-array-float-index-rd-after-barrier,Crash spec@arb_tessellation_shader@execution@variable-indexing@tcs-output-array-float-index-wr-before-barrier,Crash spec@arb_tessellation_shader@execution@variable-indexing@tcs-output-array-vec2-index-rd-after-barrier,Crash @@ -32,19 +29,23 @@ spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-fl spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-vec2-index-rd,Crash spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-vec3-index-rd,Crash spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-vec4-index-rd,Crash -spec@arb_tessellation_shader@execution@variable-indexing@tes-input-array-dvec4-index-rd,Crash spec@arb_tessellation_shader@execution@variable-indexing@tes-patch-input-array-float-index-rd,Crash spec@arb_tessellation_shader@execution@variable-indexing@tes-patch-input-array-vec2-index-invalid-rd,Crash spec@arb_tessellation_shader@execution@variable-indexing@tes-patch-input-array-vec2-index-rd,Crash spec@arb_tessellation_shader@execution@variable-indexing@tes-patch-input-array-vec3-index-rd,Crash spec@arb_tessellation_shader@execution@variable-indexing@tes-patch-input-array-vec4-index-rd,Crash -spec@arb_tessellation_shader@execution@variable-indexing@vs-output-array-dvec4-index-wr-before-tcs,Crash [email protected]@execution@interpolation@interpolation-mixed,Fail [email protected]@execution@geometry@primitive-id-out,Fail [email protected]@execution@gs-also-uses-smooth-flat-noperspective,Fail [email protected]@execution@primitive-id-no-gs,Fail [email protected]@execution@primitive-id-no-gs-instanced,Fail [email protected]@execution@primitive-id-no-gs-line,Fail [email protected]@execution@primitive-id-no-gs-quad-strip,Fail [email protected]@execution@primitive-id-no-gs-quads,Fail [email protected]@execution@variable-indexing@gs-output-array-vec4-index-wr,Crash + +# TODO: Inter-stage linkage (removing unused varyings) needs to be done at +# component level, not just location +spec@arb_enhanced_layouts@execution@component-layout@vs-fs-array-dvec3,Crash + +# TODO: Need to investigate and debug +spec@arb_enhanced_layouts@execution@component-layout@vs-gs-fs-double,Fail +spec@arb_tessellation_shader@execution@dvec3-vs-tcs-tes,Fail diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp index 31af26c9505..17d2de8b0c7 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp @@ -333,6 +333,8 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_CLIP_HALFZ: case PIPE_CAP_VS_LAYER_VIEWPORT: case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS: + case PIPE_CAP_SHADER_ARRAY_COMPONENTS: + case PIPE_CAP_TEXTURE_MIRROR_CLAMP_TO_EDGE: return 1; case PIPE_CAP_MAX_VERTEX_STREAMS:
