svga: add some devcap debugging code
authorBrian Paul <brianp@vmware.com>
Wed, 29 Nov 2017 18:28:10 +0000 (11:28 -0700)
committerBrian Paul <brianp@vmware.com>
Mon, 10 Sep 2018 19:07:30 +0000 (13:07 -0600)
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
src/gallium/drivers/svga/svga_format.c

index 35f0693323bc88e907b379b9c9d1a6fbfa51d616..79b0c769b0454767fba81f3e8d17b3ddec8bbfac 100644 (file)
@@ -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;