[PATCH 00/19] GC7000 preparation

Wladimir J. van der Laan laanwj at gmail.com
Mon Oct 30 16:16:46 UTC 2017


This is the entire patch set needed for GC7000 support in Mesa, except the
implementation of texture descriptors. There is a DRM kernel interface issue
to resolve there [1].

I'm sending this early to get some eyes on it, and because it is quite a large
patch-set and will be challenging to keep this rebased on top of master for a
long time - and it doesn't hurt to have this in already because it does some
preparation and modularization.

This works well enough to run the usual suspects such as ioquake3, darkplaces,
and passes at least one piglit test :-) I've carefully tried to preserve
compatibility with all earlier hardware, but testing is very welcome!

[1] To be specific, a texture descriptor contains pointers to GPU addresses of
texture LOD level image data, which need to be managed by the kernel driver.
I've currently avoided this issue as I'm using the Vivante kernel driver. If
you really want to see etnaviv_texture_desc.c in its current state, it's here:
https://github.com/laanwj/mesa/blob/gc7000/src/gallium/drivers/etnaviv/etnaviv_texture_desc.c

Wladimir J. van der Laan (19):
  etnaviv: Update from rnndb
  etnaviv: Const-correctness etnaviv_emit.h
  etnaviv: Put HALTI level in specs
  etnaviv: Emit SCALE for vertex attributes
  etnaviv: Use only DRAW_INSTANCED on GC3000+
  etnaviv: GC7000: Support BLT as recipient for etna_stall
  etnaviv: GC7000: Add etnaviv_blt
  etnaviv: GC7000: Split off RS blit functions
  etnaviv: GC7000: BLT engine blitting support
  etnaviv: GC7000: No RS align when using BLT
  etnaviv: GC7000: Update context reset for ..HALTI5
  etnaviv: GC7000: Update screen specs for HALTI5
  etnaviv: GC7000: State changes for HALTI3..5
  etnaviv: GC7000: Make point sprites work on HALTI5
  etnaviv: GC7000: Track dirty sampler views
  etnaviv: GC7000: Factor out incompatible texture handling logic
  etnaviv: GC7000: Move active_samplers_bits to texture
  etnaviv: GC7000: Move etna_coalesce to emit header file
  etnaviv: GC7000: Split off current texture code

 src/gallium/drivers/etnaviv/Makefile.sources       |   6 +
 src/gallium/drivers/etnaviv/etnaviv_blt.c          | 219 ++++++++
 src/gallium/drivers/etnaviv/etnaviv_blt.h          | 128 +++++
 src/gallium/drivers/etnaviv/etnaviv_clear_blit.c   | 558 +------------------
 src/gallium/drivers/etnaviv/etnaviv_clear_blit.h   |  12 +
 .../drivers/etnaviv/etnaviv_clear_blit_blt.c       | 412 ++++++++++++++
 .../drivers/etnaviv/etnaviv_clear_blit_rs.c        | 595 +++++++++++++++++++++
 src/gallium/drivers/etnaviv/etnaviv_compiler.c     |   7 +-
 src/gallium/drivers/etnaviv/etnaviv_compiler.h     |   1 +
 src/gallium/drivers/etnaviv/etnaviv_context.c      |  60 ++-
 src/gallium/drivers/etnaviv/etnaviv_context.h      |   4 +
 src/gallium/drivers/etnaviv/etnaviv_emit.c         | 425 +++++++--------
 src/gallium/drivers/etnaviv/etnaviv_emit.h         | 106 +++-
 src/gallium/drivers/etnaviv/etnaviv_format.c       |   9 +-
 src/gallium/drivers/etnaviv/etnaviv_internal.h     |   9 +
 src/gallium/drivers/etnaviv/etnaviv_resource.c     |  15 +-
 src/gallium/drivers/etnaviv/etnaviv_screen.c       |  42 +-
 src/gallium/drivers/etnaviv/etnaviv_shader.c       |   8 +
 src/gallium/drivers/etnaviv/etnaviv_state.c        |  38 +-
 src/gallium/drivers/etnaviv/etnaviv_surface.c      |  41 +-
 src/gallium/drivers/etnaviv/etnaviv_texture.c      | 148 +----
 src/gallium/drivers/etnaviv/etnaviv_texture.h      |  51 +-
 .../drivers/etnaviv/etnaviv_texture_plain.c        | 279 ++++++++++
 .../drivers/etnaviv/etnaviv_texture_plain.h        |  77 +++
 src/gallium/drivers/etnaviv/etnaviv_transfer.c     |  42 +-
 src/gallium/drivers/etnaviv/etnaviv_translate.h    |  15 +-
 src/gallium/drivers/etnaviv/etnaviv_zsa.c          |   3 +-
 src/gallium/drivers/etnaviv/hw/cmdstream.xml.h     |  20 +-
 src/gallium/drivers/etnaviv/hw/common.xml.h        |  11 +-
 src/gallium/drivers/etnaviv/hw/common_3d.xml.h     | 143 +++++
 src/gallium/drivers/etnaviv/hw/isa.xml.h           |  15 +-
 src/gallium/drivers/etnaviv/hw/state.xml.h         | 210 +++-----
 src/gallium/drivers/etnaviv/hw/state_3d.xml.h      | 388 ++++++++------
 src/gallium/drivers/etnaviv/hw/state_blt.xml.h     | 282 ++++++++++
 src/gallium/drivers/etnaviv/hw/texdesc_3d.xml.h    | 181 +++++++
 35 files changed, 3234 insertions(+), 1326 deletions(-)
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_blt.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_blt.h
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_clear_blit_blt.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_clear_blit_rs.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_texture_plain.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_texture_plain.h
 create mode 100644 src/gallium/drivers/etnaviv/hw/common_3d.xml.h
 create mode 100644 src/gallium/drivers/etnaviv/hw/state_blt.xml.h
 create mode 100644 src/gallium/drivers/etnaviv/hw/texdesc_3d.xml.h

-- 
2.7.4



More information about the etnaviv mailing list