From d15e71ef3c3e8f59aeff23d96491e606152e7f19 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Thu, 24 Nov 2022 10:27:12 +0100 Subject: [PATCH] d3d12: fix return-value for PIPE_CAP_MAX_TEXTURE_3D_LEVELS D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION is 2^11, not 2^10 like the comment said, and the code assumed. We need to add one to account for the base-level. Let's add a static_assert here to prove that this is the right value. Reviewed-by: Jesse Natalie Part-of: --- src/gallium/drivers/d3d12/d3d12_screen.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp index 1cbe1fbdd5e..7debc1f0c57 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp @@ -151,7 +151,9 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION; case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: - return 11; // D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION == 2^10 + static_assert(D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION == (1 << 11), + "D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION"); + return 12; case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS: return D3D12_REQ_MIP_LEVELS;