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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev