[Mesa-dev] [PATCH v2 00/17] etnaviv: GC7000 preparation

Wladimir J. van der Laan laanwj at gmail.com
Sat Nov 18 09:44:23 UTC 2017


This is the entire patch set needed for GC7000 support in Mesa, except for
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.

I've carefully tried to preserve compatibility with all earlier hardware, and
tested on GC2000 and GC3000, other testing is very welcome.

The entire branch on top of current master can be found here:
https://github.com/laanwj/mesa/tree/gc7000_preparation

[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 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 (17):
  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: Move etna_coalesce to emit header file
  etnaviv: GC7000: Factor out RS blit functionality
  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: Factor out state based texture functionality

 src/gallium/drivers/etnaviv/Makefile.sources       |   5 +
 src/gallium/drivers/etnaviv/etnaviv_blt.c          | 562 +++++++++++++++++
 src/gallium/drivers/etnaviv/etnaviv_blt.h          | 100 ++++
 src/gallium/drivers/etnaviv/etnaviv_clear_blit.c   | 564 +----------------
 src/gallium/drivers/etnaviv/etnaviv_clear_blit.h   |   6 +
 src/gallium/drivers/etnaviv/etnaviv_compiler.c     |  21 +-
 src/gallium/drivers/etnaviv/etnaviv_compiler.h     |   1 +
 src/gallium/drivers/etnaviv/etnaviv_context.c      |  60 +-
 src/gallium/drivers/etnaviv/etnaviv_context.h      |   7 +
 src/gallium/drivers/etnaviv/etnaviv_emit.c         | 538 +++++++----------
 src/gallium/drivers/etnaviv/etnaviv_emit.h         | 109 +++-
 src/gallium/drivers/etnaviv/etnaviv_internal.h     |   9 +
 src/gallium/drivers/etnaviv/etnaviv_resource.c     |  16 +-
 src/gallium/drivers/etnaviv/etnaviv_rs.c           | 665 ++++++++++++++++++++-
 src/gallium/drivers/etnaviv/etnaviv_rs.h           |   4 +-
 src/gallium/drivers/etnaviv/etnaviv_screen.c       |  42 +-
 src/gallium/drivers/etnaviv/etnaviv_shader.c       |   8 +
 src/gallium/drivers/etnaviv/etnaviv_state.c        |  36 +-
 src/gallium/drivers/etnaviv/etnaviv_surface.c      |  41 +-
 src/gallium/drivers/etnaviv/etnaviv_texture.c      | 205 ++-----
 src/gallium/drivers/etnaviv/etnaviv_texture.h      |  54 +-
 .../drivers/etnaviv/etnaviv_texture_state.c        | 329 ++++++++++
 .../drivers/etnaviv/etnaviv_texture_state.h        |  82 +++
 src/gallium/drivers/etnaviv/etnaviv_transfer.c     |  42 +-
 src/gallium/drivers/etnaviv/etnaviv_zsa.c          |   3 +-
 src/gallium/drivers/etnaviv/meson.build            |   5 +
 26 files changed, 2344 insertions(+), 1170 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_texture_state.c
 create mode 100644 src/gallium/drivers/etnaviv/etnaviv_texture_state.h

-- 
2.7.4



More information about the mesa-dev mailing list