From 1ea9c80d6d0b3093d8dfa93a5bf93e4d10bf6406 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 29 Nov 2017 11:28:10 -0700 Subject: [PATCH] svga: add some devcap debugging code Reviewed-by: Charmaine Lee --- src/gallium/drivers/svga/svga_format.c | 193 +++++++++++++++++++++++++ 1 file changed, 193 insertions(+) diff --git a/src/gallium/drivers/svga/svga_format.c b/src/gallium/drivers/svga/svga_format.c index 35f0693323b..79b0c769b04 100644 --- a/src/gallium/drivers/svga/svga_format.c +++ b/src/gallium/drivers/svga/svga_format.c @@ -1595,6 +1595,190 @@ check_format_tables(void) } +/** + * Return string name of an SVGA3dDevCapIndex value. + * For debugging. + */ +static const char * +svga_devcap_name(SVGA3dDevCapIndex cap) +{ + static const struct debug_named_value devcap_names[] = { + /* Note, we only list the DXFMT devcaps so far */ + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_X8R8G8B8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_A8R8G8B8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R5G6B5), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_X1R5G5B5), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_A1R5G5B5), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_A4R4G4B4), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_Z_D32), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_Z_D16), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_Z_D24S8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_Z_D15S1), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_LUMINANCE8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_LUMINANCE4_ALPHA4), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_LUMINANCE16), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_LUMINANCE8_ALPHA8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_DXT1), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_DXT2), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_DXT3), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_DXT4), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_DXT5), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BUMPU8V8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BUMPL6V5U5), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BUMPX8L8V8U8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_FORMAT_DEAD1), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_ARGB_S10E5), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_ARGB_S23E8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_A2R10G10B10), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_V8U8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_Q8W8V8U8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_CxV8U8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_X8L8V8U8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_A2W10V10U10), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_ALPHA8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R_S10E5), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R_S23E8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_RG_S10E5), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_RG_S23E8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BUFFER), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_Z_D24X8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_V16U16), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_G16R16), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_A16B16G16R16), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_UYVY), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_YUY2), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_NV12), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_AYUV), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32B32A32_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32B32A32_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32B32A32_SINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32B32_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32B32_FLOAT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32B32_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32B32_SINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16B16A16_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16B16A16_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16B16A16_SNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16B16A16_SINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32_SINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G8X24_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_D32_FLOAT_S8X24_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32_FLOAT_X8X24_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_X32_TYPELESS_G8X24_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R10G10B10A2_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R10G10B10A2_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R11G11B10_FLOAT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8B8A8_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8B8A8_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8B8A8_UNORM_SRGB), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8B8A8_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8B8A8_SINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16_SINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_D32_FLOAT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32_SINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R24G8_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_D24_UNORM_S8_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R24_UNORM_X8_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_X24_TYPELESS_G8_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8_SINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16_SNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16_SINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8_UINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8_SNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8_SINT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_P8), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R9G9B9E5_SHAREDEXP), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8_B8G8_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_G8R8_G8B8_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC1_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC1_UNORM_SRGB), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC2_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC2_UNORM_SRGB), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC3_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC3_UNORM_SRGB), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC4_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_ATI1), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC4_SNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC5_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_ATI2), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC5_SNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R10G10B10_XR_BIAS_A2_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_B8G8R8A8_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_B8G8R8A8_UNORM_SRGB), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_B8G8R8X8_TYPELESS), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_B8G8R8X8_UNORM_SRGB), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_Z_DF16), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_Z_DF24), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_Z_D24S8_INT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_YV12), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32B32A32_FLOAT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16B16A16_FLOAT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16B16A16_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32G32_FLOAT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R10G10B10A2_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8B8A8_SNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16_FLOAT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16G16_SNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R32_FLOAT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R8G8_SNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_R16_FLOAT), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_D16_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_A8_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC1_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC2_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC3_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_B5G6R5_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_B5G5R5A1_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_B8G8R8A8_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_B8G8R8X8_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC4_UNORM), + DEBUG_NAMED_VALUE(SVGA3D_DEVCAP_DXFMT_BC5_UNORM), + DEBUG_NAMED_VALUE_END, + }; + return debug_dump_enum(devcap_names, cap); +} + + +/** + * Return string for a bitmask of name of SVGA3D_DXFMT_x flags. + * For debugging. + */ +static const char * +svga_devcap_format_flags(unsigned flags) +{ + static const struct debug_named_value devcap_flags[] = { + DEBUG_NAMED_VALUE(SVGA3D_DXFMT_SUPPORTED), + DEBUG_NAMED_VALUE(SVGA3D_DXFMT_SHADER_SAMPLE), + DEBUG_NAMED_VALUE(SVGA3D_DXFMT_COLOR_RENDERTARGET), + DEBUG_NAMED_VALUE(SVGA3D_DXFMT_DEPTH_RENDERTARGET), + DEBUG_NAMED_VALUE(SVGA3D_DXFMT_BLENDABLE), + DEBUG_NAMED_VALUE(SVGA3D_DXFMT_MIPS), + DEBUG_NAMED_VALUE(SVGA3D_DXFMT_ARRAY), + DEBUG_NAMED_VALUE(SVGA3D_DXFMT_VOLUME), + DEBUG_NAMED_VALUE(SVGA3D_DXFMT_DX_VERTEX_BUFFER), + DEBUG_NAMED_VALUE(SVGA3D_DXFMT_MULTISAMPLE), + DEBUG_NAMED_VALUE_END + }; + + return debug_dump_flags(devcap_flags, flags); +} + + /* * Get format capabilities from the host. It takes in consideration * deprecated/unsupported formats, and formats which are implicitely assumed to @@ -1625,6 +1809,15 @@ svga_get_format_cap(struct svga_screen *ss, /* Explicitly advertised format */ if (entry->devcap > SVGA3D_DEVCAP_DXCONTEXT) { /* Translate DX/VGPU10 format cap to VGPU9 cap */ + + if (0) { + debug_printf("format %s, devcap %s, value 0x%x (%s)\n", + svga_format_name(format), + svga_devcap_name(entry->devcap), + result.u, + svga_devcap_format_flags(result.u)); + } + caps->value = 0; if (result.u & SVGA3D_DXFMT_COLOR_RENDERTARGET) caps->value |= SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET; -- 2.30.2