On Thu, Apr 23, 2015 at 04:49:59PM -0700, Ben Widawsky wrote: > OLD: > 0x00007e00: 0x10000000: WM SAMP0: filtering > 0x00007e04: 0x000d0000: WM SAMP0: wrapping, lod > 0x00007e08: 0x00000000: WM SAMP0: default color pointer > 0x00007e0c: 0x00000090: WM SAMP0: chroma key, aniso > > NEW: > 0x00007e00: 0x10000000: SAMPLER_STATE 0: Disabled = no, Base Mip: 0.0, > Mip/Mag/Min Filter: NONE/NEAREST/NEAREST, LOD Bias: 0.0 > 0x00007e04: 0x000d0000: SAMPLER_STATE 0: Min LOD: 0.0, Max LOD: 13.0 > 0x00007e08: 0x00000000: SAMPLER_STATE 0: Border Color > 0x00007e0c: 0x00000090: SAMPLER_STATE 0: Max aniso: RATIO 2:1, TC[XYZ] > Address Control: CLAMP|CLAMP|WRAP > > Signed-off-by: Ben Widawsky <b...@bwidawsk.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolai...@intel.com> > --- > src/mesa/drivers/dri/i965/brw_state_dump.c | 71 > +++++++++++++++++++++++++++++- > 1 file changed, 70 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_state_dump.c > b/src/mesa/drivers/dri/i965/brw_state_dump.c > index 89c1a29..21a3d8f 100644 > --- a/src/mesa/drivers/dri/i965/brw_state_dump.c > +++ b/src/mesa/drivers/dri/i965/brw_state_dump.c > @@ -32,6 +32,33 @@ > #include "brw_defines.h" > #include "brw_eu.h" > > +static const char *sampler_mip_filter[] = { > + "NONE", > + "NEAREST", > + "RSVD", > + "LINEAR" > +}; > + > +static const char *sampler_mag_filter[] = { > + "NEAREST", > + "LINEAR", > + "ANISOTROPIC", > + "FLEXIBLE (GEN8+)", > + "RSVD", "RSVD", > + "MONO", > + "RSVD" > +}; > + > +static const char *sampler_addr_mode[] = { > + "WRAP", > + "MIRROR", > + "CLAMP", > + "CUBE", > + "CLAMP_BORDER", > + "MIRROR_ONCE", > + "HALF_BORDER" > +}; > + > static void > batch_out(struct brw_context *brw, const char *name, uint32_t offset, > int index, char *fmt, ...) PRINTFLIKE(5, 6); > @@ -483,6 +510,45 @@ static void dump_sampler_state(struct brw_context *brw, > } > } > > +static void gen7_dump_sampler_state(struct brw_context *brw, > + uint32_t offset, uint32_t size) > +{ > + uint32_t *samp = brw->batch.bo->virtual + offset; > + char name[20]; > + > + for (int i = 0; i < size / 16; i++) { > + sprintf(name, "SAMPLER_STATE %d", i); > + batch_out(brw, name, offset, i, > + "Disabled = %s, Base Mip: %u.%u, Mip/Mag/Min Filter: > %s/%s/%s, LOD Bias: %d.%d\n", > + GET_BITS(samp[0], 31, 31) ? "yes" : "no", > + GET_BITS(samp[0], 26, 23), > + GET_BITS(samp[0], 22, 22), > + sampler_mip_filter[GET_FIELD(samp[0], > BRW_SAMPLER_MIP_FILTER)], > + sampler_mag_filter[GET_FIELD(samp[0], > BRW_SAMPLER_MAG_FILTER)], > + /* min filter defs are the same as mag */ > + sampler_mag_filter[GET_FIELD(samp[0], > BRW_SAMPLER_MIN_FILTER)], > + GET_BITS(samp[0], 13, 10), > + GET_BITS(samp[0], 9, 1) > + ); > + batch_out(brw, name, offset, i+1, "Min LOD: %u.%u, Max LOD: %u.%u\n", > + GET_BITS(samp[1], 31, 28), > + GET_BITS(samp[1], 27, 20), > + GET_BITS(samp[1], 19, 16), > + GET_BITS(samp[1], 15, 8) > + ); > + batch_out(brw, name, offset, i+2, "Border Color\n"); /* FINISHME: > gen8+ */ > + batch_out(brw, name, offset, i+3, "Max aniso: RATIO %d:1, TC[XYZ] > Address Control: %s|%s|%s\n", > + (GET_FIELD(samp[3], BRW_SAMPLER_MAX_ANISOTROPY) + 1) * 2, > + sampler_addr_mode[GET_FIELD(samp[3], > BRW_SAMPLER_TCX_WRAP_MODE)], > + sampler_addr_mode[GET_FIELD(samp[3], > BRW_SAMPLER_TCY_WRAP_MODE)], > + sampler_addr_mode[GET_FIELD(samp[3], > BRW_SAMPLER_TCZ_WRAP_MODE)] > + ); > + > + samp += 4; > + offset += 4 * sizeof(uint32_t); > + } > +} > + > static void dump_sf_viewport_state(struct brw_context *brw, > uint32_t offset) > { > @@ -784,7 +850,10 @@ dump_state_batch(struct brw_context *brw) > } > break; > case AUB_TRACE_SAMPLER_STATE: > - dump_sampler_state(brw, offset, size); > + if (brw->gen >= 7) > + gen7_dump_sampler_state(brw, offset, size); > + else > + dump_sampler_state(brw, offset, size); > break; > case AUB_TRACE_SAMPLER_DEFAULT_COLOR: > dump_sdc(brw, offset); > -- > 2.3.6 > > _______________________________________________ > 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