[Mesa-dev] [PATCH 0/7] surface state decode improvements (gen8+)

Ben Widawsky benjamin.widawsky at intel.com
Thu Apr 23 16:49:56 PDT 2015


While trying to debug Skylake fast color clears, I noticed that the surface
state generated by our decoder was woefully inadequate. Much of the dumped state
was so stale as to be useless.

Just to be clear, the code is not auto generated from a spec, and so I'm certain
there are bugs in the decoder. There are the typo kind of bugs, and then some
bugs where I feel the hardware spec is a bit vague, and I took a guess as to how
things should work (I am looking at you Base mips). I guarantee that even with
whatever bugs present, the output with INTEL_DEBUG=batch is significantly
improved on all gen8+ platforms. Therefore, I think it makes a lot of sense to
not worry too much about any minor issues, and fix them up in later patches...
but it's your call.

I made all of the character strings global since really any new code added to
the file would likely benefit from having it there. (Also potentially we get
slightly less bad performance when using INTEL_DEBUG=batch)

I didn't intend to leave any major state changes out, so if you're aware of one
I've missed, please don't hesitate to have me add it.

Ben Widawsky (7):
  i965: Add all surface types to the batch decode
  i965: Add viewport extents (gen8) to batch decode
  i965: Add gen7+ sampler state to batch debug
  i965: Add gen8 surface state debug info
  i965: Add gen9 surface state decoding
  i965: Add renderbuffer surface indexes to debug
  i965: Add gen8 blend state

 src/mesa/drivers/dri/i965/brw_context.h        |   1 +
 src/mesa/drivers/dri/i965/brw_defines.h        |   7 +-
 src/mesa/drivers/dri/i965/brw_state.h          |  13 +-
 src/mesa/drivers/dri/i965/brw_state_batch.c    |  20 +-
 src/mesa/drivers/dri/i965/brw_state_dump.c     | 405 +++++++++++++++++++++++--
 src/mesa/drivers/dri/i965/gen8_surface_state.c |  15 +-
 6 files changed, 423 insertions(+), 38 deletions(-)

-- 
2.3.6


More information about the mesa-dev mailing list