[Mesa-dev] [PATCH 1/6] i965: add missing BRW_SURFACEFORMAT constants from Ivybridge PRM
Matt Turner
mattst88 at gmail.com
Thu Oct 11 22:48:06 PDT 2012
On Tue, Oct 9, 2012 at 2:33 AM, Chris Forbes <chrisf at ijw.co.nz> wrote:
> From the master surface formats list in the Sampler Engine chapter.
> The relevant formats for 2_10_10_10 are mentioned in the Sandybridge
> PRM as vertex attribute types, but the 0x1b*- encodings are missing from its
> list in the Sampler Engine chapter.
> ---
> src/mesa/drivers/dri/i965/brw_defines.h | 33 +++++++++++++++++++++++++++++++++
> 1 file changed, 33 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_defines.h b/src/mesa/drivers/dri/i965/brw_defines.h
> index 6dc4707..4ae89da 100644
> --- a/src/mesa/drivers/dri/i965/brw_defines.h
> +++ b/src/mesa/drivers/dri/i965/brw_defines.h
> @@ -424,6 +424,39 @@
> #define BRW_SURFACEFORMAT_R16G16B16_SNORM 0x19D
> #define BRW_SURFACEFORMAT_R16G16B16_SSCALED 0x19E
> #define BRW_SURFACEFORMAT_R16G16B16_USCALED 0x19F
> +#define BRW_SURFACEFORMAT_BC6H_SF16 0x1A1
> +#define BRW_SURFACEFORMAT_BC7_UNORM 0x1A2
> +#define BRW_SURFACEFORMAT_BC7_UNORM_SRGB 0x1A3
> +#define BRW_SURFACEFORMAT_BC6H_UF16 0x1A4
> +#define BRW_SURFACEFORMAT_PLANAR_420_8 0x1A5
> +#define BRW_SURFACEFORMAT_R8G8B8_UNORM_SRGB 0x1A8
> +#define BRW_SURFACEFORMAT_ETC1_RGB8 0x1A9
> +#define BRW_SURFACEFORMAT_ETC2_RGB8 0x1AA
> +#define BRW_SURFACEFORMAT_EAC_R11 0x1AB
> +#define BRW_SURFACEFORMAT_EAC_RG11 0x1AC
> +#define BRW_SURFACEFORMAT_EAC_SIGNED_R11 0x1AD
> +#define BRW_SURFACEFORMAT_EAC_SIGNED_RG11 0x1AE
> +#define BRW_SURFACEFORMAT_ETC2_SRGB8 0x1AF
> +#define BRW_SURFACEFORMAT_R16G16B16_UINT 0x1B0
> +#define BRW_SURFACEFORMAT_R16G16B16_SINT 0x1B1
> +#define BRW_SURFACEFORMAT_R32_SFIXED 0x1B2
> +#define BRW_SURFACEFORMAT_R10G10B10A2_SNORM 0x1B3
> +#define BRW_SURFACEFORMAT_R10G10B10A2_USCALED 0x1B4
> +#define BRW_SURFACEFORMAT_R10G10B10A2_SSCALED 0x1B5
> +#define BRW_SURFACEFORMAT_R10G10B10A2_SINT 0x1B6
> +#define BRW_SURFACEFORMAT_B10G10R10A2_SNORM 0x1B7
> +#define BRW_SURFACEFORMAT_B10G10R10A2_USCALED 0x1B8
> +#define BRW_SURFACEFORMAT_B10G10R10A2_SSCALED 0x1B9
> +#define BRW_SURFACEFORMAT_B10G10R10A2_UINT 0x1BA
> +#define BRW_SURFACEFORMAT_B10G10R10A2_SINT 0x1BB
> +#define BRW_SURFACEFORMAT_R64G64B64A64_PASSTHRU 0x1BC
> +#define BRW_SURFACEFORMAT_R64G64B64_PASSTHRU 0x1BD
> +#define BRW_SURFACEFORMAT_ETC2_RGB8_PTA 0x1C0
> +#define BRW_SURFACEFORMAT_ETC2_SRGB8_PTA 0x1C1
> +#define BRW_SURFACEFORMAT_ETC2_EAC_RGBA8 0x1C2
> +#define BRW_SURFACEFORMAT_ETC2_EAC_SRGB8_A8 0x1C3
> +#define BRW_SURFACEFORMAT_R8G8B8_UINT 0x1C8
> +#define BRW_SURFACEFORMAT_R8G8B8_SINT 0x1C9
> #define BRW_SURFACE_FORMAT_SHIFT 18
> #define BRW_SURFACE_FORMAT_MASK INTEL_MASK(26, 18)
>
> --
> 1.7.12.2
A lot of these formats aren't actually supported by the hardware, so
they probably shouldn't go in the code until there's hardware that can
actually use them.
For instance, IVB's IHD_OS_Vol4_Part1.pdf says
Errata : BC6H_SF16, BC6H_UF16, and BC7_SRGB are not supported and may
result in data corruption
if used.
Also, IVB doesn't support ETC1 or ETC2. Not sure about some of the others.
Probably best to only add the formats needed for this extension.
More information about the mesa-dev
mailing list