On Wed, Nov 18, 2015 at 11:10:12AM +0200, Pohjolainen, Topi wrote: > On Tue, Nov 17, 2015 at 05:30:06PM -0800, Ben Widawsky wrote: > > Background: Prior to Skylake and since Ivybridge Intel hardware has had the > > ability to use a MCS (Multisample Control Surface) as auxiliary data in > > "compression" operations on the surface. This reduces memory bandwidth. > > This > > hardware was either used for MSAA compression, and fast clear operations. > > On > > This says: > > ... either ... , and ... > > should it have been > > ... either ... or ... > > > All in all, I really appreciate the thorough explanation here in this commit, > just had to check. I know I'm late with my comments, so bare with me. > > > Gen8, a similar mechanism exists to allow the hiz buffer to be sampled > > from, and > > therefore this feature is sometimes referred to more generally as "AUX > > buffers". > > > > Skylake adds the ability to have the display engine directly source > > compressed > > surfaces on top of the ability to sample from them. Inference dictates that > > enabling this display features adding a restriction to the formats which > > could > > s/adding/adds/ ? > > > actually be compressed. The current set of surfaces seems to be a subset as > > compared to previous gens (see the next patch). Also, if I had to guess I > > would > > guess that future gens add support for more surface formats. To make > > handling > > this a bit easier to read, and more future proof, the support for this is > > moved > > into the surface formats table. > > > > Along with the modifications to the table, a helper function is also > > provided to > > determine if a surface is CCS compatible. Because fast clears are currently > > disabled on SKL, we can plumb the helper all the way through here, and not > > actually have anything break. > > > > The logic in the table works a bit differently than the other columns in the > > table and therefore deserves a small mention. For most other features, the > > GEN > > I have difficulty here also: the sentence compares table to other columns in > the table ("... logic in the table ... than other columns..."). > > Did you mean to say that a particular _column_ in the table behaves > differently than the others? > > > which began implementing it is set, and it is assumed future gens also > > support > > this. For this feature, GEN9 actually eliminates support for certain > > formats. We > > could use this column to determine support for the similar feature on older > > And here you refer to the newly added column? Comparing the contents of that > column to the supported render targets (column RT) gives you the delta between > gen9 and older? > > > generation hardware. Aside from that being an error prone task which is > > unrelated to enabling this on GEN9, it becomes somewhat tricky to implement > > because of the fact that surface format support diminishes. You'd probably > > want > > another column to cleanly implement it. > > And this is what you did, right? > > Again, sorry for the 20 questions. > > Otherwise the patch makes sense to me: > > Reviewed-by: Topi Pohjolainen <topi.pohjolai...@intel.com> > > (You probably want Chad and Neil to give their consent also). > > > > > v2: > > - rename ccs to ccs_e; Requested-by: Chad > > - rename lossless_compression to lossless_compression Requested-by: Chad > > - change meaning of brw_losslessly_compressible_format Requested-by: Chad > > - related changes to the code to reflect this. > > - remove excess ccs (Chad) > > > > Requested-by: Chad Versace <chad.vers...@intel.com> > > Requested-by: Neil Roberts <n...@linux.intel.com> > > Signed-off-by: Ben Widawsky <benjamin.widaw...@intel.com> > > --- > > src/mesa/drivers/dri/i965/brw_context.h | 2 + > > src/mesa/drivers/dri/i965/brw_surface_formats.c | 525 > > +++++++++++++----------- > > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 7 +- > > 3 files changed, 282 insertions(+), 252 deletions(-) > > > > diff --git a/src/mesa/drivers/dri/i965/brw_context.h > > b/src/mesa/drivers/dri/i965/brw_context.h > > index 8d6bc19..fe45edb 100644 > > --- a/src/mesa/drivers/dri/i965/brw_context.h > > +++ b/src/mesa/drivers/dri/i965/brw_context.h > > @@ -1467,6 +1467,8 @@ void brw_upload_image_surfaces(struct brw_context > > *brw, > > /* brw_surface_formats.c */ > > bool brw_render_target_supported(struct brw_context *brw, > > struct gl_renderbuffer *rb); > > +bool brw_losslessly_compressible_format(struct brw_context *brw, > > + uint32_t brw_format); > > uint32_t brw_depth_format(struct brw_context *brw, mesa_format format); > > mesa_format brw_lower_mesa_image_format(const struct brw_device_info > > *devinfo, > > mesa_format format); > > diff --git a/src/mesa/drivers/dri/i965/brw_surface_formats.c > > b/src/mesa/drivers/dri/i965/brw_surface_formats.c > > index 97fff60..16f7fec 100644 > > --- a/src/mesa/drivers/dri/i965/brw_surface_formats.c > > +++ b/src/mesa/drivers/dri/i965/brw_surface_formats.c > > @@ -39,14 +39,15 @@ struct surface_format_info { > > int input_vb; > > int streamed_output_vb; > > int color_processing; > > + int lossless_compression; > > const char *name; > > }; > > > > /* This macro allows us to write the table almost as it appears in the PRM, > > * while restructuring it to turn it into the C code we want. > > */ > > -#define SF(sampl, filt, shad, ck, rt, ab, vb, so, color, sf) \ > > - [BRW_SURFACEFORMAT_##sf] = { true, sampl, filt, shad, ck, rt, ab, vb, > > so, color, #sf}, > > +#define SF(sampl, filt, shad, ck, rt, ab, vb, so, color, ccs_e, sf) \ > > + [BRW_SURFACEFORMAT_##sf] = { true, sampl, filt, shad, ck, rt, ab, vb, > > so, color, ccs_e, #sf}, > > > > #define Y 0 > > #define x 999 > > @@ -74,6 +75,7 @@ struct surface_format_info { > > * VB - Input Vertex Buffer > > * SO - Steamed Output Vertex Buffers (transform feedback) > > * color - Color Processing > > + * ccs_e - Lossless Compression Support (gen9+ only) > > * sf - Surface Format > > * > > * See page 88 of the Sandybridge PRM VOL4_Part1 PDF. > > @@ -84,257 +86,258 @@ struct surface_format_info { > > * - VOL2_Part1 section 2.5.11 Format Conversion (vertex fetch). > > * - VOL4_Part1 section 2.12.2.1.2 Sampler Output Channel Mapping. > > * - VOL4_Part1 section 3.9.11 Render Target Write. > > + * - Render Target Surface Types [SKL+] > > */ > > const struct surface_format_info surface_formats[] = { > > -/* smpl filt shad CK RT AB VB SO color */ > > - SF( Y, 50, x, x, Y, Y, Y, Y, x, R32G32B32A32_FLOAT) > > - SF( Y, x, x, x, Y, x, Y, Y, x, R32G32B32A32_SINT) > > - SF( Y, x, x, x, Y, x, Y, Y, x, R32G32B32A32_UINT) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32B32A32_UNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32B32A32_SNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R64G64_FLOAT) > > - SF( Y, 50, x, x, x, x, x, x, x, R32G32B32X32_FLOAT) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32B32A32_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32B32A32_USCALED) > > - SF( x, x, x, x, x, x, x, x, x, R32G32B32A32_SFIXED) > > - SF( x, x, x, x, x, x, x, x, x, R64G64_PASSTHRU) > > - SF( Y, 50, x, x, x, x, Y, Y, x, R32G32B32_FLOAT) > > - SF( Y, x, x, x, x, x, Y, Y, x, R32G32B32_SINT) > > - SF( Y, x, x, x, x, x, Y, Y, x, R32G32B32_UINT) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32B32_UNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32B32_SNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32B32_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32B32_USCALED) > > - SF( x, x, x, x, x, x, x, x, x, R32G32B32_SFIXED) > > - SF( Y, Y, x, x, Y, 45, Y, x, 60, R16G16B16A16_UNORM) > > - SF( Y, Y, x, x, Y, 60, Y, x, x, R16G16B16A16_SNORM) > > - SF( Y, x, x, x, Y, x, Y, x, x, R16G16B16A16_SINT) > > - SF( Y, x, x, x, Y, x, Y, x, x, R16G16B16A16_UINT) > > - SF( Y, Y, x, x, Y, Y, Y, x, x, R16G16B16A16_FLOAT) > > - SF( Y, 50, x, x, Y, Y, Y, Y, x, R32G32_FLOAT) > > - SF( Y, 70, x, x, Y, Y, Y, Y, x, R32G32_FLOAT_LD) > > - SF( Y, x, x, x, Y, x, Y, Y, x, R32G32_SINT) > > - SF( Y, x, x, x, Y, x, Y, Y, x, R32G32_UINT) > > - SF( Y, 50, Y, x, x, x, x, x, x, R32_FLOAT_X8X24_TYPELESS) > > - SF( Y, x, x, x, x, x, x, x, x, X32_TYPELESS_G8X24_UINT) > > - SF( Y, 50, x, x, x, x, x, x, x, L32A32_FLOAT) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32_UNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32_SNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R64_FLOAT) > > - SF( Y, Y, x, x, x, x, x, x, x, R16G16B16X16_UNORM) > > - SF( Y, Y, x, x, x, x, x, x, x, R16G16B16X16_FLOAT) > > - SF( Y, 50, x, x, x, x, x, x, x, A32X32_FLOAT) > > - SF( Y, 50, x, x, x, x, x, x, x, L32X32_FLOAT) > > - SF( Y, 50, x, x, x, x, x, x, x, I32X32_FLOAT) > > - SF( x, x, x, x, x, x, Y, x, x, R16G16B16A16_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R16G16B16A16_USCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R32G32_USCALED) > > - SF( x, x, x, x, x, x, x, x, x, R32G32_SFIXED) > > - SF( x, x, x, x, x, x, x, x, x, R64_PASSTHRU) > > - SF( Y, Y, x, Y, Y, Y, Y, x, 60, B8G8R8A8_UNORM) > > - SF( Y, Y, x, x, Y, Y, x, x, x, B8G8R8A8_UNORM_SRGB) > > -/* smpl filt shad CK RT AB VB SO color */ > > - SF( Y, Y, x, x, Y, Y, Y, x, 60, R10G10B10A2_UNORM) > > - SF( Y, Y, x, x, x, x, x, x, 60, R10G10B10A2_UNORM_SRGB) > > - SF( Y, x, x, x, Y, x, Y, x, x, R10G10B10A2_UINT) > > - SF( Y, Y, x, x, x, Y, Y, x, x, R10G10B10_SNORM_A2_UNORM) > > - SF( Y, Y, x, x, Y, Y, Y, x, 60, R8G8B8A8_UNORM) > > - SF( Y, Y, x, x, Y, Y, x, x, 60, R8G8B8A8_UNORM_SRGB) > > - SF( Y, Y, x, x, Y, 60, Y, x, x, R8G8B8A8_SNORM) > > - SF( Y, x, x, x, Y, x, Y, x, x, R8G8B8A8_SINT) > > - SF( Y, x, x, x, Y, x, Y, x, x, R8G8B8A8_UINT) > > - SF( Y, Y, x, x, Y, 45, Y, x, x, R16G16_UNORM) > > - SF( Y, Y, x, x, Y, 60, Y, x, x, R16G16_SNORM) > > - SF( Y, x, x, x, Y, x, Y, x, x, R16G16_SINT) > > - SF( Y, x, x, x, Y, x, Y, x, x, R16G16_UINT) > > - SF( Y, Y, x, x, Y, Y, Y, x, x, R16G16_FLOAT) > > - SF( Y, Y, x, x, Y, Y, x, x, 60, B10G10R10A2_UNORM) > > - SF( Y, Y, x, x, Y, Y, x, x, 60, B10G10R10A2_UNORM_SRGB) > > - SF( Y, Y, x, x, Y, Y, Y, x, x, R11G11B10_FLOAT) > > - SF( Y, x, x, x, Y, x, Y, Y, x, R32_SINT) > > - SF( Y, x, x, x, Y, x, Y, Y, x, R32_UINT) > > - SF( Y, 50, Y, x, Y, Y, Y, Y, x, R32_FLOAT) > > - SF( Y, 50, Y, x, x, x, x, x, x, R24_UNORM_X8_TYPELESS) > > - SF( Y, x, x, x, x, x, x, x, x, X24_TYPELESS_G8_UINT) > > - SF( Y, Y, x, x, x, x, x, x, x, L16A16_UNORM) > > - SF( Y, 50, Y, x, x, x, x, x, x, I24X8_UNORM) > > - SF( Y, 50, Y, x, x, x, x, x, x, L24X8_UNORM) > > - SF( Y, 50, Y, x, x, x, x, x, x, A24X8_UNORM) > > - SF( Y, 50, Y, x, x, x, x, x, x, I32_FLOAT) > > - SF( Y, 50, Y, x, x, x, x, x, x, L32_FLOAT) > > - SF( Y, 50, Y, x, x, x, x, x, x, A32_FLOAT) > > - SF( Y, Y, x, Y, x, x, x, x, 60, B8G8R8X8_UNORM) > > - SF( Y, Y, x, x, x, x, x, x, x, B8G8R8X8_UNORM_SRGB) > > - SF( Y, Y, x, x, x, x, x, x, x, R8G8B8X8_UNORM) > > - SF( Y, Y, x, x, x, x, x, x, x, R8G8B8X8_UNORM_SRGB) > > - SF( Y, Y, x, x, x, x, x, x, x, R9G9B9E5_SHAREDEXP) > > - SF( Y, Y, x, x, x, x, x, x, x, B10G10R10X2_UNORM) > > - SF( Y, Y, x, x, x, x, x, x, x, L16A16_FLOAT) > > - SF( x, x, x, x, x, x, Y, x, x, R32_UNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R32_SNORM) > > -/* smpl filt shad CK RT AB VB SO color */ > > - SF( x, x, x, x, x, x, Y, x, x, R10G10B10X2_USCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R8G8B8A8_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R8G8B8A8_USCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R16G16_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R16G16_USCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R32_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R32_USCALED) > > - SF( Y, Y, x, Y, Y, Y, x, x, x, B5G6R5_UNORM) > > - SF( Y, Y, x, x, Y, Y, x, x, x, B5G6R5_UNORM_SRGB) > > - SF( Y, Y, x, Y, Y, Y, x, x, x, B5G5R5A1_UNORM) > > - SF( Y, Y, x, x, Y, Y, x, x, x, B5G5R5A1_UNORM_SRGB) > > - SF( Y, Y, x, Y, Y, Y, x, x, x, B4G4R4A4_UNORM) > > - SF( Y, Y, x, x, Y, Y, x, x, x, B4G4R4A4_UNORM_SRGB) > > - SF( Y, Y, x, x, Y, Y, Y, x, x, R8G8_UNORM) > > - SF( Y, Y, x, Y, Y, 60, Y, x, x, R8G8_SNORM) > > - SF( Y, x, x, x, Y, x, Y, x, x, R8G8_SINT) > > - SF( Y, x, x, x, Y, x, Y, x, x, R8G8_UINT) > > - SF( Y, Y, Y, x, Y, 45, Y, x, 70, R16_UNORM) > > - SF( Y, Y, x, x, Y, 60, Y, x, x, R16_SNORM) > > - SF( Y, x, x, x, Y, x, Y, x, x, R16_SINT) > > - SF( Y, x, x, x, Y, x, Y, x, x, R16_UINT) > > - SF( Y, Y, x, x, Y, Y, Y, x, x, R16_FLOAT) > > - SF(50, 50, x, x, x, x, x, x, x, A8P8_UNORM_PALETTE0) > > - SF(50, 50, x, x, x, x, x, x, x, A8P8_UNORM_PALETTE1) > > - SF( Y, Y, Y, x, x, x, x, x, x, I16_UNORM) > > - SF( Y, Y, Y, x, x, x, x, x, x, L16_UNORM) > > - SF( Y, Y, Y, x, x, x, x, x, x, A16_UNORM) > > - SF( Y, Y, x, Y, x, x, x, x, x, L8A8_UNORM) > > - SF( Y, Y, Y, x, x, x, x, x, x, I16_FLOAT) > > - SF( Y, Y, Y, x, x, x, x, x, x, L16_FLOAT) > > - SF( Y, Y, Y, x, x, x, x, x, x, A16_FLOAT) > > - SF(45, 45, x, x, x, x, x, x, x, L8A8_UNORM_SRGB) > > - SF( Y, Y, x, Y, x, x, x, x, x, R5G5_SNORM_B6_UNORM) > > - SF( x, x, x, x, Y, Y, x, x, x, B5G5R5X1_UNORM) > > - SF( x, x, x, x, Y, Y, x, x, x, B5G5R5X1_UNORM_SRGB) > > - SF( x, x, x, x, x, x, Y, x, x, R8G8_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R8G8_USCALED) > > -/* smpl filt shad CK RT AB VB SO color */ > > - SF( x, x, x, x, x, x, Y, x, x, R16_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R16_USCALED) > > - SF(50, 50, x, x, x, x, x, x, x, P8A8_UNORM_PALETTE0) > > - SF(50, 50, x, x, x, x, x, x, x, P8A8_UNORM_PALETTE1) > > - SF( x, x, x, x, x, x, x, x, x, A1B5G5R5_UNORM) > > - SF( x, x, x, x, x, x, x, x, x, A4B4G4R4_UNORM) > > - SF( x, x, x, x, x, x, x, x, x, L8A8_UINT) > > - SF( x, x, x, x, x, x, x, x, x, L8A8_SINT) > > - SF( Y, Y, x, 45, Y, Y, Y, x, x, R8_UNORM) > > - SF( Y, Y, x, x, Y, 60, Y, x, x, R8_SNORM) > > - SF( Y, x, x, x, Y, x, Y, x, x, R8_SINT) > > - SF( Y, x, x, x, Y, x, Y, x, x, R8_UINT) > > - SF( Y, Y, x, Y, Y, Y, x, x, x, A8_UNORM) > > - SF( Y, Y, x, x, x, x, x, x, x, I8_UNORM) > > - SF( Y, Y, x, Y, x, x, x, x, x, L8_UNORM) > > - SF( Y, Y, x, x, x, x, x, x, x, P4A4_UNORM) > > - SF( Y, Y, x, x, x, x, x, x, x, A4P4_UNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R8_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R8_USCALED) > > - SF(45, 45, x, x, x, x, x, x, x, P8_UNORM_PALETTE0) > > - SF(45, 45, x, x, x, x, x, x, x, L8_UNORM_SRGB) > > - SF(45, 45, x, x, x, x, x, x, x, P8_UNORM_PALETTE1) > > - SF(45, 45, x, x, x, x, x, x, x, P4A4_UNORM_PALETTE1) > > - SF(45, 45, x, x, x, x, x, x, x, A4P4_UNORM_PALETTE1) > > - SF( x, x, x, x, x, x, x, x, x, Y8_SNORM) > > - SF( x, x, x, x, x, x, x, x, x, L8_UINT) > > - SF( x, x, x, x, x, x, x, x, x, L8_SINT) > > - SF( x, x, x, x, x, x, x, x, x, I8_UINT) > > - SF( x, x, x, x, x, x, x, x, x, I8_SINT) > > - SF(45, 45, x, x, x, x, x, x, x, DXT1_RGB_SRGB) > > - SF( Y, Y, x, x, x, x, x, x, x, R1_UINT) > > - SF( Y, Y, x, Y, Y, x, x, x, 60, YCRCB_NORMAL) > > - SF( Y, Y, x, Y, Y, x, x, x, 60, YCRCB_SWAPUVY) > > - SF(45, 45, x, x, x, x, x, x, x, P2_UNORM_PALETTE0) > > - SF(45, 45, x, x, x, x, x, x, x, P2_UNORM_PALETTE1) > > - SF( Y, Y, x, Y, x, x, x, x, x, BC1_UNORM) > > - SF( Y, Y, x, Y, x, x, x, x, x, BC2_UNORM) > > - SF( Y, Y, x, Y, x, x, x, x, x, BC3_UNORM) > > - SF( Y, Y, x, x, x, x, x, x, x, BC4_UNORM) > > - SF( Y, Y, x, x, x, x, x, x, x, BC5_UNORM) > > - SF( Y, Y, x, x, x, x, x, x, x, BC1_UNORM_SRGB) > > - SF( Y, Y, x, x, x, x, x, x, x, BC2_UNORM_SRGB) > > - SF( Y, Y, x, x, x, x, x, x, x, BC3_UNORM_SRGB) > > - SF( Y, x, x, x, x, x, x, x, x, MONO8) > > - SF( Y, Y, x, x, Y, x, x, x, 60, YCRCB_SWAPUV) > > - SF( Y, Y, x, x, Y, x, x, x, 60, YCRCB_SWAPY) > > - SF( Y, Y, x, x, x, x, x, x, x, DXT1_RGB) > > -/* smpl filt shad CK RT AB VB SO color */ > > - SF( Y, Y, x, x, x, x, x, x, x, FXT1) > > - SF( x, x, x, x, x, x, Y, x, x, R8G8B8_UNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R8G8B8_SNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R8G8B8_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R8G8B8_USCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R64G64B64A64_FLOAT) > > - SF( x, x, x, x, x, x, Y, x, x, R64G64B64_FLOAT) > > - SF( Y, Y, x, x, x, x, x, x, x, BC4_SNORM) > > - SF( Y, Y, x, x, x, x, x, x, x, BC5_SNORM) > > - SF(50, 50, x, x, x, x, 60, x, x, R16G16B16_FLOAT) > > - SF( x, x, x, x, x, x, Y, x, x, R16G16B16_UNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R16G16B16_SNORM) > > - SF( x, x, x, x, x, x, Y, x, x, R16G16B16_SSCALED) > > - SF( x, x, x, x, x, x, Y, x, x, R16G16B16_USCALED) > > - SF(70, 70, x, x, x, x, x, x, x, BC6H_SF16) > > - SF(70, 70, x, x, x, x, x, x, x, BC7_UNORM) > > - SF(70, 70, x, x, x, x, x, x, x, BC7_UNORM_SRGB) > > - SF(70, 70, x, x, x, x, x, x, x, BC6H_UF16) > > - SF( x, x, x, x, x, x, x, x, x, PLANAR_420_8) > > - SF( x, x, x, x, x, x, x, x, x, R8G8B8_UNORM_SRGB) > > - SF( x, x, x, x, x, x, x, x, x, ETC1_RGB8) > > - SF( x, x, x, x, x, x, x, x, x, ETC2_RGB8) > > - SF( x, x, x, x, x, x, x, x, x, EAC_R11) > > - SF( x, x, x, x, x, x, x, x, x, EAC_RG11) > > - SF( x, x, x, x, x, x, x, x, x, EAC_SIGNED_R11) > > - SF( x, x, x, x, x, x, x, x, x, EAC_SIGNED_RG11) > > - SF( x, x, x, x, x, x, x, x, x, ETC2_SRGB8) > > - SF( x, x, x, x, x, x, x, x, x, R16G16B16_UINT) > > - SF( x, x, x, x, x, x, x, x, x, R16G16B16_SINT) > > - SF( x, x, x, x, x, x, x, x, x, R32_SFIXED) > > - SF( x, x, x, x, x, x, x, x, x, R10G10B10A2_SNORM) > > - SF( x, x, x, x, x, x, x, x, x, R10G10B10A2_USCALED) > > - SF( x, x, x, x, x, x, x, x, x, R10G10B10A2_SSCALED) > > - SF( x, x, x, x, x, x, x, x, x, R10G10B10A2_SINT) > > - SF( x, x, x, x, x, x, x, x, x, B10G10R10A2_SNORM) > > - SF( x, x, x, x, x, x, x, x, x, B10G10R10A2_USCALED) > > - SF( x, x, x, x, x, x, x, x, x, B10G10R10A2_SSCALED) > > - SF( x, x, x, x, x, x, x, x, x, B10G10R10A2_UINT) > > - SF( x, x, x, x, x, x, x, x, x, B10G10R10A2_SINT) > > - SF( x, x, x, x, x, x, x, x, x, R64G64B64A64_PASSTHRU) > > - SF( x, x, x, x, x, x, x, x, x, R64G64B64_PASSTHRU) > > - SF( x, x, x, x, x, x, x, x, x, ETC2_RGB8_PTA) > > - SF( x, x, x, x, x, x, x, x, x, ETC2_SRGB8_PTA) > > - SF( x, x, x, x, x, x, x, x, x, ETC2_EAC_RGBA8) > > - SF( x, x, x, x, x, x, x, x, x, ETC2_EAC_SRGB8_A8) > > - SF( x, x, x, x, x, x, x, x, x, R8G8B8_UINT) > > - SF( x, x, x, x, x, x, x, x, x, R8G8B8_SINT) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_4x4_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_5x4_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_5x5_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_6x5_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_6x6_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_8x5_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_8x6_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_8x8_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_10x5_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_10x6_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_10x8_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_10x10_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_12x10_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_12x12_FLT16) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_4x4_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_5x4_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_5x5_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_6x5_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_6x6_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_8x5_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_8x6_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_8x8_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_10x5_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_10x6_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_10x8_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_10x10_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_12x10_U8sRGB) > > - SF(80, 80, x, x, x, x, x, x, x, ASTC_LDR_2D_12x12_U8sRGB) > > +/* smpl filt shad CK RT AB VB SO color ccs_e */ > > + SF( Y, 50, x, x, Y, Y, Y, Y, x, x, R32G32B32A32_FLOAT) > > + SF( Y, x, x, x, Y, x, Y, Y, x, x, R32G32B32A32_SINT) > > + SF( Y, x, x, x, Y, x, Y, Y, x, x, R32G32B32A32_UINT) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32B32A32_UNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32B32A32_SNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R64G64_FLOAT) > > + SF( Y, 50, x, x, x, x, x, x, x, x, R32G32B32X32_FLOAT) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32B32A32_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32B32A32_USCALED) > > + SF( x, x, x, x, x, x, x, x, x, x, R32G32B32A32_SFIXED) > > + SF( x, x, x, x, x, x, x, x, x, x, R64G64_PASSTHRU) > > + SF( Y, 50, x, x, x, x, Y, Y, x, x, R32G32B32_FLOAT) > > + SF( Y, x, x, x, x, x, Y, Y, x, x, R32G32B32_SINT) > > + SF( Y, x, x, x, x, x, Y, Y, x, x, R32G32B32_UINT) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32B32_UNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32B32_SNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32B32_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32B32_USCALED) > > + SF( x, x, x, x, x, x, x, x, x, x, R32G32B32_SFIXED) > > + SF( Y, Y, x, x, Y, 45, Y, x, 60, x, R16G16B16A16_UNORM) > > + SF( Y, Y, x, x, Y, 60, Y, x, x, x, R16G16B16A16_SNORM) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R16G16B16A16_SINT) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R16G16B16A16_UINT) > > + SF( Y, Y, x, x, Y, Y, Y, x, x, x, R16G16B16A16_FLOAT) > > + SF( Y, 50, x, x, Y, Y, Y, Y, x, x, R32G32_FLOAT) > > + SF( Y, 70, x, x, Y, Y, Y, Y, x, x, R32G32_FLOAT_LD) > > + SF( Y, x, x, x, Y, x, Y, Y, x, x, R32G32_SINT) > > + SF( Y, x, x, x, Y, x, Y, Y, x, x, R32G32_UINT) > > + SF( Y, 50, Y, x, x, x, x, x, x, x, R32_FLOAT_X8X24_TYPELESS) > > + SF( Y, x, x, x, x, x, x, x, x, x, X32_TYPELESS_G8X24_UINT) > > + SF( Y, 50, x, x, x, x, x, x, x, x, L32A32_FLOAT) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32_UNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32_SNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R64_FLOAT) > > + SF( Y, Y, x, x, x, x, x, x, x, x, R16G16B16X16_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, x, R16G16B16X16_FLOAT) > > + SF( Y, 50, x, x, x, x, x, x, x, x, A32X32_FLOAT) > > + SF( Y, 50, x, x, x, x, x, x, x, x, L32X32_FLOAT) > > + SF( Y, 50, x, x, x, x, x, x, x, x, I32X32_FLOAT) > > + SF( x, x, x, x, x, x, Y, x, x, x, R16G16B16A16_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R16G16B16A16_USCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32G32_USCALED) > > + SF( x, x, x, x, x, x, x, x, x, x, R32G32_SFIXED) > > + SF( x, x, x, x, x, x, x, x, x, x, R64_PASSTHRU) > > + SF( Y, Y, x, Y, Y, Y, Y, x, 60, x, B8G8R8A8_UNORM) > > + SF( Y, Y, x, x, Y, Y, x, x, x, x, B8G8R8A8_UNORM_SRGB) > > +/* smpl filt shad CK RT AB VB SO color ccs_e */ > > + SF( Y, Y, x, x, Y, Y, Y, x, 60, x, R10G10B10A2_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, 60, x, R10G10B10A2_UNORM_SRGB) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R10G10B10A2_UINT) > > + SF( Y, Y, x, x, x, Y, Y, x, x, x, R10G10B10_SNORM_A2_UNORM) > > + SF( Y, Y, x, x, Y, Y, Y, x, 60, x, R8G8B8A8_UNORM) > > + SF( Y, Y, x, x, Y, Y, x, x, 60, x, R8G8B8A8_UNORM_SRGB) > > + SF( Y, Y, x, x, Y, 60, Y, x, x, x, R8G8B8A8_SNORM) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R8G8B8A8_SINT) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R8G8B8A8_UINT) > > + SF( Y, Y, x, x, Y, 45, Y, x, x, x, R16G16_UNORM) > > + SF( Y, Y, x, x, Y, 60, Y, x, x, x, R16G16_SNORM) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R16G16_SINT) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R16G16_UINT) > > + SF( Y, Y, x, x, Y, Y, Y, x, x, x, R16G16_FLOAT) > > + SF( Y, Y, x, x, Y, Y, x, x, 60, x, B10G10R10A2_UNORM) > > + SF( Y, Y, x, x, Y, Y, x, x, 60, x, B10G10R10A2_UNORM_SRGB) > > + SF( Y, Y, x, x, Y, Y, Y, x, x, x, R11G11B10_FLOAT) > > + SF( Y, x, x, x, Y, x, Y, Y, x, x, R32_SINT) > > + SF( Y, x, x, x, Y, x, Y, Y, x, x, R32_UINT) > > + SF( Y, 50, Y, x, Y, Y, Y, Y, x, x, R32_FLOAT) > > + SF( Y, 50, Y, x, x, x, x, x, x, x, R24_UNORM_X8_TYPELESS) > > + SF( Y, x, x, x, x, x, x, x, x, x, X24_TYPELESS_G8_UINT) > > + SF( Y, Y, x, x, x, x, x, x, x, x, L16A16_UNORM) > > + SF( Y, 50, Y, x, x, x, x, x, x, x, I24X8_UNORM) > > + SF( Y, 50, Y, x, x, x, x, x, x, x, L24X8_UNORM) > > + SF( Y, 50, Y, x, x, x, x, x, x, x, A24X8_UNORM) > > + SF( Y, 50, Y, x, x, x, x, x, x, x, I32_FLOAT) > > + SF( Y, 50, Y, x, x, x, x, x, x, x, L32_FLOAT) > > + SF( Y, 50, Y, x, x, x, x, x, x, x, A32_FLOAT) > > + SF( Y, Y, x, Y, x, x, x, x, 60, x, B8G8R8X8_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, x, B8G8R8X8_UNORM_SRGB) > > + SF( Y, Y, x, x, x, x, x, x, x, x, R8G8B8X8_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, x, R8G8B8X8_UNORM_SRGB) > > + SF( Y, Y, x, x, x, x, x, x, x, x, R9G9B9E5_SHAREDEXP) > > + SF( Y, Y, x, x, x, x, x, x, x, x, B10G10R10X2_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, x, L16A16_FLOAT) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32_UNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32_SNORM) > > +/* smpl filt shad CK RT AB VB SO color ccs_e */ > > + SF( x, x, x, x, x, x, Y, x, x, x, R10G10B10X2_USCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R8G8B8A8_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R8G8B8A8_USCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R16G16_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R16G16_USCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R32_USCALED) > > + SF( Y, Y, x, Y, Y, Y, x, x, x, x, B5G6R5_UNORM) > > + SF( Y, Y, x, x, Y, Y, x, x, x, x, B5G6R5_UNORM_SRGB) > > + SF( Y, Y, x, Y, Y, Y, x, x, x, x, B5G5R5A1_UNORM) > > + SF( Y, Y, x, x, Y, Y, x, x, x, x, B5G5R5A1_UNORM_SRGB) > > + SF( Y, Y, x, Y, Y, Y, x, x, x, x, B4G4R4A4_UNORM) > > + SF( Y, Y, x, x, Y, Y, x, x, x, x, B4G4R4A4_UNORM_SRGB) > > + SF( Y, Y, x, x, Y, Y, Y, x, x, x, R8G8_UNORM) > > + SF( Y, Y, x, Y, Y, 60, Y, x, x, x, R8G8_SNORM) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R8G8_SINT) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R8G8_UINT) > > + SF( Y, Y, Y, x, Y, 45, Y, x, 70, x, R16_UNORM) > > + SF( Y, Y, x, x, Y, 60, Y, x, x, x, R16_SNORM) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R16_SINT) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R16_UINT) > > + SF( Y, Y, x, x, Y, Y, Y, x, x, x, R16_FLOAT) > > + SF(50, 50, x, x, x, x, x, x, x, x, A8P8_UNORM_PALETTE0) > > + SF(50, 50, x, x, x, x, x, x, x, x, A8P8_UNORM_PALETTE1) > > + SF( Y, Y, Y, x, x, x, x, x, x, x, I16_UNORM) > > + SF( Y, Y, Y, x, x, x, x, x, x, x, L16_UNORM) > > + SF( Y, Y, Y, x, x, x, x, x, x, x, A16_UNORM) > > + SF( Y, Y, x, Y, x, x, x, x, x, x, L8A8_UNORM) > > + SF( Y, Y, Y, x, x, x, x, x, x, x, I16_FLOAT) > > + SF( Y, Y, Y, x, x, x, x, x, x, x, L16_FLOAT) > > + SF( Y, Y, Y, x, x, x, x, x, x, x, A16_FLOAT) > > + SF(45, 45, x, x, x, x, x, x, x, x, L8A8_UNORM_SRGB) > > + SF( Y, Y, x, Y, x, x, x, x, x, x, R5G5_SNORM_B6_UNORM) > > + SF( x, x, x, x, Y, Y, x, x, x, x, B5G5R5X1_UNORM) > > + SF( x, x, x, x, Y, Y, x, x, x, x, B5G5R5X1_UNORM_SRGB) > > + SF( x, x, x, x, x, x, Y, x, x, x, R8G8_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R8G8_USCALED) > > +/* smpl filt shad CK RT AB VB SO color ccs_e */ > > + SF( x, x, x, x, x, x, Y, x, x, x, R16_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R16_USCALED) > > + SF(50, 50, x, x, x, x, x, x, x, x, P8A8_UNORM_PALETTE0) > > + SF(50, 50, x, x, x, x, x, x, x, x, P8A8_UNORM_PALETTE1) > > + SF( x, x, x, x, x, x, x, x, x, x, A1B5G5R5_UNORM) > > + SF( x, x, x, x, x, x, x, x, x, x, A4B4G4R4_UNORM) > > + SF( x, x, x, x, x, x, x, x, x, x, L8A8_UINT) > > + SF( x, x, x, x, x, x, x, x, x, x, L8A8_SINT) > > + SF( Y, Y, x, 45, Y, Y, Y, x, x, x, R8_UNORM) > > + SF( Y, Y, x, x, Y, 60, Y, x, x, x, R8_SNORM) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R8_SINT) > > + SF( Y, x, x, x, Y, x, Y, x, x, x, R8_UINT) > > + SF( Y, Y, x, Y, Y, Y, x, x, x, x, A8_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, x, I8_UNORM) > > + SF( Y, Y, x, Y, x, x, x, x, x, x, L8_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, x, P4A4_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, x, A4P4_UNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R8_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R8_USCALED) > > + SF(45, 45, x, x, x, x, x, x, x, x, P8_UNORM_PALETTE0) > > + SF(45, 45, x, x, x, x, x, x, x, x, L8_UNORM_SRGB) > > + SF(45, 45, x, x, x, x, x, x, x, x, P8_UNORM_PALETTE1) > > + SF(45, 45, x, x, x, x, x, x, x, x, P4A4_UNORM_PALETTE1) > > + SF(45, 45, x, x, x, x, x, x, x, x, A4P4_UNORM_PALETTE1) > > + SF( x, x, x, x, x, x, x, x, x, x, Y8_SNORM) > > + SF( x, x, x, x, x, x, x, x, x, x, L8_UINT) > > + SF( x, x, x, x, x, x, x, x, x, x, L8_SINT) > > + SF( x, x, x, x, x, x, x, x, x, x, I8_UINT) > > + SF( x, x, x, x, x, x, x, x, x, x, I8_SINT) > > + SF(45, 45, x, x, x, x, x, x, x, x, DXT1_RGB_SRGB) > > + SF( Y, Y, x, x, x, x, x, x, x, x, R1_UINT) > > + SF( Y, Y, x, Y, Y, x, x, x, 60, x, YCRCB_NORMAL) > > + SF( Y, Y, x, Y, Y, x, x, x, 60, x, YCRCB_SWAPUVY) > > + SF(45, 45, x, x, x, x, x, x, x, x, P2_UNORM_PALETTE0) > > + SF(45, 45, x, x, x, x, x, x, x, x, P2_UNORM_PALETTE1) > > + SF( Y, Y, x, Y, x, x, x, x, x, x, BC1_UNORM) > > + SF( Y, Y, x, Y, x, x, x, x, x, x, BC2_UNORM) > > + SF( Y, Y, x, Y, x, x, x, x, x, x, BC3_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, x, BC4_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, x, BC5_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, x, BC1_UNORM_SRGB) > > + SF( Y, Y, x, x, x, x, x, x, x, x, BC2_UNORM_SRGB) > > + SF( Y, Y, x, x, x, x, x, x, x, x, BC3_UNORM_SRGB) > > + SF( Y, x, x, x, x, x, x, x, x, x, MONO8) > > + SF( Y, Y, x, x, Y, x, x, x, 60, x, YCRCB_SWAPUV) > > + SF( Y, Y, x, x, Y, x, x, x, 60, x, YCRCB_SWAPY) > > + SF( Y, Y, x, x, x, x, x, x, x, x, DXT1_RGB) > > +/* smpl filt shad CK RT AB VB SO color ccs_e */ > > + SF( Y, Y, x, x, x, x, x, x, x, x, FXT1) > > + SF( x, x, x, x, x, x, Y, x, x, x, R8G8B8_UNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R8G8B8_SNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R8G8B8_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R8G8B8_USCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R64G64B64A64_FLOAT) > > + SF( x, x, x, x, x, x, Y, x, x, x, R64G64B64_FLOAT) > > + SF( Y, Y, x, x, x, x, x, x, x, x, BC4_SNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, x, BC5_SNORM) > > + SF(50, 50, x, x, x, x, 60, x, x, x, R16G16B16_FLOAT) > > + SF( x, x, x, x, x, x, Y, x, x, x, R16G16B16_UNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R16G16B16_SNORM) > > + SF( x, x, x, x, x, x, Y, x, x, x, R16G16B16_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, x, R16G16B16_USCALED) > > + SF(70, 70, x, x, x, x, x, x, x, x, BC6H_SF16) > > + SF(70, 70, x, x, x, x, x, x, x, x, BC7_UNORM) > > + SF(70, 70, x, x, x, x, x, x, x, x, BC7_UNORM_SRGB) > > + SF(70, 70, x, x, x, x, x, x, x, x, BC6H_UF16) > > + SF( x, x, x, x, x, x, x, x, x, x, PLANAR_420_8) > > + SF( x, x, x, x, x, x, x, x, x, x, R8G8B8_UNORM_SRGB) > > + SF( x, x, x, x, x, x, x, x, x, x, ETC1_RGB8) > > + SF( x, x, x, x, x, x, x, x, x, x, ETC2_RGB8) > > + SF( x, x, x, x, x, x, x, x, x, x, EAC_R11) > > + SF( x, x, x, x, x, x, x, x, x, x, EAC_RG11) > > + SF( x, x, x, x, x, x, x, x, x, x, EAC_SIGNED_R11) > > + SF( x, x, x, x, x, x, x, x, x, x, EAC_SIGNED_RG11) > > + SF( x, x, x, x, x, x, x, x, x, x, ETC2_SRGB8) > > + SF( x, x, x, x, x, x, x, x, x, x, R16G16B16_UINT) > > + SF( x, x, x, x, x, x, x, x, x, x, R16G16B16_SINT) > > + SF( x, x, x, x, x, x, x, x, x, x, R32_SFIXED) > > + SF( x, x, x, x, x, x, x, x, x, x, R10G10B10A2_SNORM) > > + SF( x, x, x, x, x, x, x, x, x, x, R10G10B10A2_USCALED) > > + SF( x, x, x, x, x, x, x, x, x, x, R10G10B10A2_SSCALED) > > + SF( x, x, x, x, x, x, x, x, x, x, R10G10B10A2_SINT) > > + SF( x, x, x, x, x, x, x, x, x, x, B10G10R10A2_SNORM) > > + SF( x, x, x, x, x, x, x, x, x, x, B10G10R10A2_USCALED) > > + SF( x, x, x, x, x, x, x, x, x, x, B10G10R10A2_SSCALED) > > + SF( x, x, x, x, x, x, x, x, x, x, B10G10R10A2_UINT) > > + SF( x, x, x, x, x, x, x, x, x, x, B10G10R10A2_SINT) > > + SF( x, x, x, x, x, x, x, x, x, x, R64G64B64A64_PASSTHRU) > > + SF( x, x, x, x, x, x, x, x, x, x, R64G64B64_PASSTHRU) > > + SF( x, x, x, x, x, x, x, x, x, x, ETC2_RGB8_PTA) > > + SF( x, x, x, x, x, x, x, x, x, x, ETC2_SRGB8_PTA) > > + SF( x, x, x, x, x, x, x, x, x, x, ETC2_EAC_RGBA8) > > + SF( x, x, x, x, x, x, x, x, x, x, ETC2_EAC_SRGB8_A8) > > + SF( x, x, x, x, x, x, x, x, x, x, R8G8B8_UINT) > > + SF( x, x, x, x, x, x, x, x, x, x, R8G8B8_SINT) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_4x4_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_5x4_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_5x5_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_6x5_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_6x6_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_8x5_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_8x6_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_8x8_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_10x5_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_10x6_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_10x8_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_10x10_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_12x10_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_12x12_FLT16) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_4x4_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_5x4_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_5x5_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_6x5_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_6x6_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_8x5_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_8x6_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_8x8_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_10x5_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_10x6_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_10x8_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_10x10_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_12x10_U8sRGB) > > + SF(80, 80, x, x, x, x, x, x, x, x, ASTC_LDR_2D_12x12_U8sRGB) > > }; > > #undef x > > #undef Y > > @@ -784,6 +787,26 @@ brw_render_target_supported(struct brw_context *brw, > > return brw->format_supported_as_render_target[format]; > > } > > > > +/* > > + * True if the underlying hardware format can support lossless color > > + * compression. > > + */ > > +bool > > +brw_losslessly_compressible_format(struct brw_context *brw, > > + uint32_t brw_format) > > +{ > > + const struct surface_format_info *sinfo; > > + int gen = brw->gen * 10;
And in case you decide to modify the commit message, here is a small nit you can take or leave. You can declare both helper variables const: const struct surface_format_info * const sinfo = &surface_formats[brw_format]; const int gen = brw->gen * 10; > > + > > + assert(brw->gen >= 9); > > + > > + sinfo = &surface_formats[brw_format]; > > + if (gen >= sinfo->lossless_compression) > > + return true; > > + > > + return false; > > +} > > + > > GLuint > > translate_tex_format(struct brw_context *brw, > > mesa_format mesa_format, > > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > index 4c3f2c0..056cdb6 100644 > > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > @@ -35,6 +35,7 @@ > > > > #include "brw_blorp.h" > > #include "brw_context.h" > > +#include "brw_state.h" > > > > #include "main/enums.h" > > #include "main/fbobject.h" > > @@ -265,7 +266,11 @@ intel_miptree_supports_non_msrt_fast_clear(struct > > brw_context *brw, > > if (!brw->format_supported_as_render_target[mt->format]) > > return false; > > > > - return true; > > + if (brw->gen >= 9) { > > + const uint32_t brw_format = brw_format_for_mesa_format(mt->format); > > + return brw_losslessly_compressible_format(brw, brw_format); > > + } else > > + return true; > > } > > > > > > -- > > 2.6.2 > > > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev