Mesa (main): d3d12: Replace pipe cap literals with D3D12 defines when available
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Dec 30 18:51:46 UTC 2021
Module: Mesa
Branch: main
Commit: 5b32915055c2def05a000990424fb5649a85e1a3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5b32915055c2def05a000990424fb5649a85e1a3
Author: Jesse Natalie <jenatali at microsoft.com>
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 <sivileri at microsoft.com>
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;
More information about the mesa-commit
mailing list