On Thursday, April 23, 2015 04:49:57 PM Ben Widawsky wrote: > It's true that not all surfaces apply for every gen, but for the most part > this > is what we want. (The unfortunate case is when we use an valid surface, but > not > for the specific GEN). > > This was automated with a vim macro. > > v2: Shortened common forms such as R8G8B8A8->RGBA8. Note that this makes some > of > the sample output in subsequent commits slightly incorrect. > > Signed-off-by: Ben Widawsky <b...@bwidawsk.net> > --- > src/mesa/drivers/dri/i965/brw_state_dump.c | 226 > ++++++++++++++++++++++++++++- > 1 file changed, 219 insertions(+), 7 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_state_dump.c > b/src/mesa/drivers/dri/i965/brw_state_dump.c > index 5cf70eb..a688ba3 100644 > --- a/src/mesa/drivers/dri/i965/brw_state_dump.c > +++ b/src/mesa/drivers/dri/i965/brw_state_dump.c > @@ -67,13 +67,225 @@ get_965_surfacetype(unsigned int surfacetype) > static const char * > get_965_surface_format(unsigned int surface_format) > { > - switch (surface_format) { > - case 0x000: return "r32g32b32a32_float"; > - case 0x0c1: return "b8g8r8a8_unorm"; > - case 0x100: return "b5g6r5_unorm"; > - case 0x102: return "b5g5r5a1_unorm"; > - case 0x104: return "b4g4r4a4_unorm"; > - default: return "unknown"; > + switch (surface_format) { > + case BRW_SURFACEFORMAT_R32G32B32A32_FLOAT: return "RGBA32_FLOAT"; > + case BRW_SURFACEFORMAT_R32G32B32A32_SINT: return "RGBA32_SINT"; > + case BRW_SURFACEFORMAT_R32G32B32A32_UINT: return "RGBA32_UINT"; > + case BRW_SURFACEFORMAT_R32G32B32A32_UNORM: return "RGBA32_UNORM"; > + case BRW_SURFACEFORMAT_R32G32B32A32_SNORM: return "RGBA32_SNORM";
I'd prefer to decode these exactly as they are..."R32G32B32A32_FLOAT". I think a better plan would be to edit the table in brw_surface_formats.c - add a const char *name field, and change the macro to: #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 }, then remove BRW_SURFACEFORMAT_* from the entries in the table. With that in place, you can just look it up in the table, and adding new formats will be easy - all in one place.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev