On Wednesday, July 30, 2014 11:24:24 AM Pohjolainen, Topi wrote: > On Tue, Jul 29, 2014 at 04:29:23PM -0700, Kenneth Graunke wrote: > > Although the Gen4-6 and Gen7+ variants used different structure types, > > they didn't use any of the fields - only the size, which is identical. > > So both decoders did exactly the same thing. > > > > Someday we should implement useful decoders for SAMPLER_STATE. > > > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > > --- > > src/mesa/drivers/dri/i965/brw_state_dump.c | 39 > > ++++-------------------------- > > 1 file changed, 5 insertions(+), 34 deletions(-) > > > > diff --git a/src/mesa/drivers/dri/i965/brw_state_dump.c > > b/src/mesa/drivers/dri/i965/brw_state_dump.c > > index 9d83859..611998f 100644 > > --- a/src/mesa/drivers/dri/i965/brw_state_dump.c > > +++ b/src/mesa/drivers/dri/i965/brw_state_dump.c > > @@ -255,33 +255,9 @@ static void dump_sampler_state(struct brw_context *brw, > > uint32_t offset, uint32_t size) > > { > > int i; > > - struct brw_sampler_state *samp = brw->batch.bo->virtual + offset; > > + uint32_t *samp = brw->batch.bo->virtual + offset; > > > > - assert(brw->gen < 7); > > - > > - for (i = 0; i < size / sizeof(*samp); i++) { > > - char name[20]; > > - > > - sprintf(name, "WM SAMP%d", i); > > - batch_out(brw, name, offset, 0, "filtering\n"); > > - batch_out(brw, name, offset, 1, "wrapping, lod\n"); > > - batch_out(brw, name, offset, 2, "default color pointer\n"); > > - batch_out(brw, name, offset, 3, "chroma key, aniso\n"); > > - > > - samp++; > > - offset += sizeof(*samp); > > - } > > -} > > - > > -static void dump_gen7_sampler_state(struct brw_context *brw, > > - uint32_t offset, uint32_t size) > > -{ > > - struct gen7_sampler_state *samp = brw->batch.bo->virtual + offset; > > - int i; > > - > > - assert(brw->gen >= 7); > > - > > - for (i = 0; i < size / sizeof(*samp); i++) { > > + for (i = 0; i < size / 16; i++) { > > Here you use 16, but for augmenting the offset "4 * sizeof(uint32_t)". > How about using a helper: > > const int sampler_size = 4 * sizeof(uint32_t);
I like that a lot better. I ended up doing: const int sampler_state_size = 16; /* 16 bytes */ since the comment right above it explains that SAMPLER_STATE is 16 bytes. I'd originally used 4 * sizeof(uint32_t) to try and distinguish the 16 byte size from the groups of 16 samplers. But, the local variable works even better.
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