Module: Mesa Branch: main Commit: 5b32915055c2def05a000990424fb5649a85e1a3 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5b32915055c2def05a000990424fb5649a85e1a3
Author: Jesse Natalie <[email protected]> Date: Wed Dec 8 06:48:39 2021 -0800 d3d12: Replace pipe cap literals with D3D12 defines when available Also remove references to feature levels < 11.0, D3D12 doesn't support those Reviewed-by: Sil Vilerino <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14161> --- src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt | 5 ++- src/gallium/drivers/d3d12/d3d12_screen.cpp | 46 +++++++------------------ 2 files changed, 14 insertions(+), 37 deletions(-) diff --git a/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt b/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt index 33981a8691f..14275f71d00 100644 --- a/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt +++ b/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt @@ -4187,7 +4187,6 @@ spec/ext_texture_array/copyteximage 2d_array samples=32: skip spec/ext_texture_array/copyteximage 2d_array samples=4: skip spec/ext_texture_array/copyteximage 2d_array samples=6: skip spec/ext_texture_array/copyteximage 2d_array samples=8: skip -spec/ext_texture_array/maxlayers: fail spec/ext_texture_compression_bptc/bptc-api_gles2: skip spec/ext_texture_compression_latc/fbo-generatemipmap-formats: skip spec/ext_texture_compression_latc/fbo-generatemipmap-formats-signed: skip @@ -4711,8 +4710,8 @@ wgl/wgl-sanity: skip summary: name: results ---- -------- - pass: 14313 - fail: 481 + pass: 14314 + fail: 480 crash: 68 skip: 4141 timeout: 0 diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp index 24da072914a..c4dee5177f9 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp @@ -133,37 +133,19 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return 1; case PIPE_CAP_MAX_RENDER_TARGETS: - if (screen->max_feature_level >= D3D_FEATURE_LEVEL_10_0) - return 8; - else if (screen->max_feature_level == D3D_FEATURE_LEVEL_9_3) - return 4; - return 1; + return D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT; case PIPE_CAP_TEXTURE_SWIZZLE: return 1; case PIPE_CAP_MAX_TEXTURE_2D_SIZE: - if (screen->max_feature_level >= D3D_FEATURE_LEVEL_11_0) - return 16384; - else if (screen->max_feature_level >= D3D_FEATURE_LEVEL_10_0) - return 8192; - else if (screen->max_feature_level >= D3D_FEATURE_LEVEL_9_3) - return 4096; - return 2048; + return D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION; case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: - if (screen->max_feature_level >= D3D_FEATURE_LEVEL_10_0) - return 11; - return 9; + return 11; // D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION == 2^10 case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS: - if (screen->max_feature_level >= D3D_FEATURE_LEVEL_11_0) - return 14; - else if (screen->max_feature_level >= D3D_FEATURE_LEVEL_10_0) - return 13; - else if (screen->max_feature_level == D3D_FEATURE_LEVEL_9_3) - return 12; - return 9; + return D3D12_REQ_MIP_LEVELS; case PIPE_CAP_PRIMITIVE_RESTART: case PIPE_CAP_INDEP_BLEND_ENABLE: @@ -182,11 +164,7 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return 1; case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: - if (screen->max_feature_level >= D3D_FEATURE_LEVEL_11_0) - return 1 << 14; - else if (screen->max_feature_level >= D3D_FEATURE_LEVEL_10_0) - return 1 << 13; - return 0; + return D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION; case PIPE_CAP_DEPTH_CLIP_DISABLE: return 1; @@ -228,7 +206,7 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return PIPE_ENDIAN_NATIVE; /* unsure */ case PIPE_CAP_MAX_VIEWPORTS: - return 1; /* probably wrong */ + return D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT; case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: return 1; @@ -265,7 +243,7 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT; case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT: - return 256; + return D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT; case PIPE_CAP_PCI_GROUP: case PIPE_CAP_PCI_BUS: @@ -301,20 +279,20 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return 1; case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS: - return 4; + return D3D12_SO_BUFFER_SLOT_COUNT; case PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS: case PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS: - return 16 * 4; + return D3D12_SO_OUTPUT_COMPONENT_COUNT; /* Geometry shader output. */ case PIPE_CAP_MAX_GEOMETRY_OUTPUT_VERTICES: - return 256; + return D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES; case PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: - return 256 * 4; + return D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT; case PIPE_CAP_MAX_VARYINGS: - return 32; + return D3D12_PS_INPUT_REGISTER_COUNT; case PIPE_CAP_NIR_COMPACT_ARRAYS: return 1;
