On Wed, 16 Nov 2011 00:21:59 -0800, Kenneth Graunke <kenn...@whitecape.org> wrote: > On 11/15/2011 05:55 PM, Eric Anholt wrote: > > This will be used to drive chosing formats and determining framebuffer > > completeness, instead of the bunch of ad-hoc checks we have had until > > now. > > --- > > src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 204 > > ++++++++++++++++++++++ > > 1 files changed, 204 insertions(+), 0 deletions(-) > > > > diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c > > b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c > > index 0cc6201..f0df730 100644 > > --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c > > +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> > + SF( Y, Y, x, x, Y, 60, Y, x, x, BRW_SURFACEFORMAT_R16_SNORM) > > + SF( Y, x, x, x, Y, x, Y, x, x, BRW_SURFACEFORMAT_R16_SINT) > > + SF( Y, x, x, x, Y, x, Y, x, x, BRW_SURFACEFORMAT_R16_UINT) > > + SF( Y, Y, x, x, Y, Y, Y, x, x, BRW_SURFACEFORMAT_R16_FLOAT) > > + SF( Y, Y, Y, x, x, x, x, x, x, BRW_SURFACEFORMAT_I16_UNORM) > > + SF( Y, Y, Y, x, x, x, x, x, x, BRW_SURFACEFORMAT_L16_UNORM) > > + SF( Y, Y, Y, x, x, x, x, x, x, BRW_SURFACEFORMAT_A16_UNORM) > > + SF( Y, Y, x, Y, x, x, x, x, x, BRW_SURFACEFORMAT_L8A8_UNORM) > > + SF( Y, Y, Y, x, x, x, x, x, x, BRW_SURFACEFORMAT_I16_FLOAT) > > + SF( Y, Y, Y, x, x, x, x, x, x, BRW_SURFACEFORMAT_L16_FLOAT) > > + SF( Y, Y, Y, x, x, x, x, x, x, BRW_SURFACEFORMAT_A16_FLOAT) > > + SF(45, 45, x, x, x, x, x, x, x, > > BRW_SURFACEFORMAT_L8A8_UNORM_SRGB) > > + SF( Y, Y, x, Y, x, x, x, x, x, > > BRW_SURFACEFORMAT_R5G5_SNORM_B6_UNORM) > > + SF( x, x, x, x, Y, Y, x, x, x, BRW_SURFACEFORMAT_B5G5R5X1_UNORM) > > + SF( x, x, x, x, Y, Y, x, x, x, > > BRW_SURFACEFORMAT_B5G5R5X1_UNORM_SRGB) > > + SF( x, x, x, x, x, x, Y, x, x, BRW_SURFACEFORMAT_R8G8_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, BRW_SURFACEFORMAT_R8G8_USCALED) > > +/* smpl filt shad CK RT AB VB SO color */ > > + SF( x, x, x, x, x, x, Y, x, x, BRW_SURFACEFORMAT_R16_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, BRW_SURFACEFORMAT_R16_USCALED) > > + SF( Y, Y, x, 45, Y, Y, Y, x, x, BRW_SURFACEFORMAT_R8_UNORM) > > + SF( Y, Y, x, x, Y, 60, Y, x, x, BRW_SURFACEFORMAT_R8_SNORM) > > + SF( Y, x, x, x, Y, x, Y, x, x, BRW_SURFACEFORMAT_R8_SINT) > > + SF( Y, x, x, x, Y, x, Y, x, x, BRW_SURFACEFORMAT_R8_UINT) > > + SF( Y, Y, x, Y, Y, Y, x, x, x, BRW_SURFACEFORMAT_A8_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_I8_UNORM) > > + SF( Y, Y, x, Y, x, x, x, x, x, BRW_SURFACEFORMAT_L8_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_P4A4_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_A4P4_UNORM) > > You should probably kill the P4A4 and A4P4 entries: > 1. We don't care about paletted textures. > 2. You already omitted A8P8_UNORM, P8A8_UNORM, P8_UNORM, and P2_UNORM. > 3. I'm not sure 'Y' is correct here: The PRM lists it as Y for palette 0, but > 45 > for palette 1. If palette1 didn't exist before G45 (seems likely), then I > suppose this is fine. If not, you'd have to encode that in the table > somehow...(and did I mention we don't care?) Ah, a bit of process I wasn't clear on: I included everything in here that was listed in brw_defines.h. I think having everything there in the table is reasonable. Re: palettes and Y/N, apparently the format number determines which palette is used for lookup. > > + SF( x, x, x, x, x, x, Y, x, x, BRW_SURFACEFORMAT_R8_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, BRW_SURFACEFORMAT_R8_USCALED) > > + SF(45, 45, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_L8_UNORM_SRGB) > > + SF(45, 45, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_DXT1_RGB_SRGB) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_R1_UINT) > > + SF( Y, Y, x, Y, Y, x, x, x, 60, BRW_SURFACEFORMAT_YCRCB_NORMAL) > > + SF( Y, Y, x, Y, Y, x, x, x, 60, BRW_SURFACEFORMAT_YCRCB_SWAPUVY) > > + SF( Y, Y, x, Y, x, x, x, x, x, BRW_SURFACEFORMAT_BC1_UNORM) > > + SF( Y, Y, x, Y, x, x, x, x, x, BRW_SURFACEFORMAT_BC2_UNORM) > > + SF( Y, Y, x, Y, x, x, x, x, x, BRW_SURFACEFORMAT_BC3_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_BC4_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_BC5_UNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_BC1_UNORM_SRGB) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_BC2_UNORM_SRGB) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_BC3_UNORM_SRGB) > > + SF( Y, x, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_MONO8) > > + SF( Y, Y, x, x, Y, x, x, x, 60, BRW_SURFACEFORMAT_YCRCB_SWAPUV) > > + SF( Y, Y, x, x, Y, x, x, x, 60, BRW_SURFACEFORMAT_YCRCB_SWAPY) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_DXT1_RGB) > > +/* smpl filt shad CK RT AB VB SO color */ > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_FXT1) > > + SF( x, x, x, x, x, x, Y, x, x, BRW_SURFACEFORMAT_R8G8B8_UNORM) > > + SF( x, x, x, x, x, x, Y, x, x, BRW_SURFACEFORMAT_R8G8B8_SNORM) > > + SF( x, x, x, x, x, x, Y, x, x, BRW_SURFACEFORMAT_R8G8B8_SSCALED) > > + SF( x, x, x, x, x, x, Y, x, x, BRW_SURFACEFORMAT_R8G8B8_USCALED) > > + SF( x, x, x, x, x, x, Y, x, x, > > BRW_SURFACEFORMAT_R64G64B64A64_FLOAT) > > + SF( x, x, x, x, x, x, Y, x, x, > > BRW_SURFACEFORMAT_R64G64B64_FLOAT) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_BC4_SNORM) > > + SF( Y, Y, x, x, x, x, x, x, x, BRW_SURFACEFORMAT_BC5_SNORM) > > I think you missed one here: > > SF(50, 50, x, x, x, x, 60, x, x, > BRW_SURFACEFORMAT_R16G16B16_FLOAT) Yeah, I think I'll add the new #define as a followon. Which means that RGB16 goes from renderable to not renderable, but I'm comfortable with that.
pgpy19O2yvHXh.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev