[Mesa-dev] [PATCH 0/6] vc5 driver to merge

Eric Anholt eric at anholt.net
Sat Aug 19 00:13:42 UTC 2017


I'm feeling good enough about the core of the vc5 driver that I'd like
to merge it at this point.

I'm passing about 2/3 of tests in simulation with GLES3.0 exposed.
The current top piglit problems:

* polygonmode is still not a thing the hardware can do.
* MSAA isn't done.
* stencil blits aren't done.
* 16-bit unorm is broken.

I've set it up so that it only builds against the simulator for now,
since I don't have a kernel driver to merge yet and don't want any
ioctl calls to be present in somebody's mistakenly built experimental
driver.

Dave, does this sound OK to you as far as UABI concerns go?  Anyone
else want to ack/nack merging at this early stage?

Eric Anholt (6):
  nir: Move vc4's alpha test lowering to core NIR.
  configure: Add the new "vc5" driver to the list, requiring a
    simulator.
  broadcom: Add V3D 3.3 QPU instruction pack, unpack, and disasm.
  broadcom: Add vc5 CLIF dumping
  broadcom: Add VC5 NIR compiler.
  broadcom: Add V3D 3.3 gallium driver called "vc5", for BCM7268.

 configure.ac                                       |   14 +-
 src/Makefile.am                                    |    4 +
 src/broadcom/Makefile.am                           |   14 +
 src/broadcom/Makefile.sources                      |   20 +
 src/broadcom/Makefile.vc5.am                       |   19 +
 src/broadcom/clif/clif_dump.c                      |  268 +++
 src/broadcom/clif/clif_dump.h                      |   42 +
 src/broadcom/nir/nir_to_qir.c                      | 2079 ++++++++++++++++++++
 src/broadcom/nir/qir.c                             |  644 ++++++
 src/broadcom/nir/qir_dump.c                        |  334 ++++
 src/broadcom/nir/qir_live_variables.c              |  340 ++++
 src/broadcom/nir/qir_lower_uniforms.c              |  209 ++
 src/broadcom/nir/qir_opt_copy_propagate.c          |  233 +++
 src/broadcom/nir/qir_opt_dead_code.c               |  162 ++
 src/broadcom/nir/qir_register_allocate.c           |  253 +++
 src/broadcom/nir/qir_to_qpu.c                      |  357 ++++
 src/broadcom/nir/qpu_schedule.c                    | 1362 +++++++++++++
 src/broadcom/nir/qpu_validate.c                    |  208 ++
 src/broadcom/nir/vc5_compiler.c                    |   43 +
 .../vc4/vc4_qir.h => broadcom/nir/vc5_compiler.h}  |  796 ++++----
 src/broadcom/nir/vc5_nir_lower_io.c                |  181 ++
 src/broadcom/qpu/qpu_disasm.c                      |  298 +++
 src/broadcom/qpu/qpu_disasm.h                      |   39 +
 src/broadcom/qpu/qpu_instr.c                       |  645 ++++++
 src/broadcom/qpu/qpu_instr.h                       |  411 ++++
 src/broadcom/qpu/qpu_pack.c                        | 1206 ++++++++++++
 src/broadcom/qpu/qpu_validate.c                    |    0
 src/broadcom/qpu/tests/.gitignore                  |    1 +
 src/broadcom/qpu/tests/qpu_disasm.c                |  146 ++
 src/compiler/Makefile.sources                      |    1 +
 src/compiler/nir/nir.h                             |    2 +
 src/compiler/nir/nir_builder.h                     |   25 +
 src/compiler/nir/nir_lower_alpha_test.c            |  111 ++
 src/compiler/shader_enums.h                        |   17 +
 src/gallium/Makefile.am                            |    5 +
 .../auxiliary/pipe-loader/pipe_loader_drm.c        |    5 +
 src/gallium/auxiliary/target-helpers/drm_helper.h  |   23 +
 .../auxiliary/target-helpers/drm_helper_public.h   |    3 +
 src/gallium/drivers/vc4/vc4_nir_lower_blend.c      |   50 -
 src/gallium/drivers/vc4/vc4_program.c              |   15 +-
 src/gallium/drivers/vc4/vc4_qir.h                  |    1 -
 src/gallium/drivers/vc5/.editorconfig              |    3 +
 src/gallium/drivers/vc5/Automake.inc               |    9 +
 src/{broadcom => gallium/drivers/vc5}/Makefile.am  |   46 +-
 src/gallium/drivers/vc5/Makefile.sources           |   26 +
 src/gallium/drivers/vc5/vc5_blit.c                 |  226 +++
 src/gallium/drivers/vc5/vc5_bufmgr.c               |  580 ++++++
 src/gallium/drivers/vc5/vc5_bufmgr.h               |  140 ++
 src/gallium/drivers/vc5/vc5_cl.c                   |   86 +
 src/gallium/drivers/vc5/vc5_cl.h                   |  248 +++
 src/gallium/drivers/vc5/vc5_context.c              |  172 ++
 src/gallium/drivers/vc5/vc5_context.h              |  504 +++++
 src/gallium/drivers/vc5/vc5_draw.c                 |  606 ++++++
 src/gallium/drivers/vc5/vc5_drm.h                  |  189 ++
 src/gallium/drivers/vc5/vc5_emit.c                 |  497 +++++
 src/gallium/drivers/vc5/vc5_fence.c                |   93 +
 src/gallium/drivers/vc5/vc5_formats.c              |  412 ++++
 src/gallium/drivers/vc5/vc5_job.c                  |  434 ++++
 src/gallium/drivers/vc5/vc5_program.c              |  678 +++++++
 src/gallium/drivers/vc5/vc5_query.c                |   91 +
 src/gallium/drivers/vc5/vc5_rcl.c                  |  217 ++
 src/gallium/drivers/vc5/vc5_resource.c             |  763 +++++++
 src/gallium/drivers/vc5/vc5_resource.h             |  158 ++
 src/gallium/drivers/vc5/vc5_screen.c               |  648 ++++++
 src/gallium/drivers/vc5/vc5_screen.h               |  107 +
 src/gallium/drivers/vc5/vc5_simulator.c            |  682 +++++++
 src/gallium/drivers/vc5/vc5_state.c                |  580 ++++++
 src/gallium/drivers/vc5/vc5_tiling.c               |  402 ++++
 src/gallium/drivers/vc5/vc5_tiling.h               |   43 +
 src/gallium/drivers/vc5/vc5_uniforms.c             |  416 ++++
 src/gallium/targets/dri/Makefile.am                |    1 +
 src/gallium/targets/dri/target.c                   |    4 +
 .../winsys/vc5/drm/Android.mk}                     |   46 +-
 .../winsys/vc5/drm}/Makefile.am                    |   36 +-
 src/gallium/winsys/vc5/drm/Makefile.sources        |    3 +
 src/gallium/winsys/vc5/drm/vc5_drm_public.h        |   31 +
 src/gallium/winsys/vc5/drm/vc5_drm_winsys.c        |   35 +
 77 files changed, 19235 insertions(+), 563 deletions(-)
 create mode 100644 src/broadcom/Makefile.vc5.am
 create mode 100644 src/broadcom/clif/clif_dump.c
 create mode 100644 src/broadcom/clif/clif_dump.h
 create mode 100644 src/broadcom/nir/nir_to_qir.c
 create mode 100644 src/broadcom/nir/qir.c
 create mode 100644 src/broadcom/nir/qir_dump.c
 create mode 100644 src/broadcom/nir/qir_live_variables.c
 create mode 100644 src/broadcom/nir/qir_lower_uniforms.c
 create mode 100644 src/broadcom/nir/qir_opt_copy_propagate.c
 create mode 100644 src/broadcom/nir/qir_opt_dead_code.c
 create mode 100644 src/broadcom/nir/qir_register_allocate.c
 create mode 100644 src/broadcom/nir/qir_to_qpu.c
 create mode 100644 src/broadcom/nir/qpu_schedule.c
 create mode 100644 src/broadcom/nir/qpu_validate.c
 create mode 100644 src/broadcom/nir/vc5_compiler.c
 copy src/{gallium/drivers/vc4/vc4_qir.h => broadcom/nir/vc5_compiler.h} (52%)
 create mode 100644 src/broadcom/nir/vc5_nir_lower_io.c
 create mode 100644 src/broadcom/qpu/qpu_disasm.c
 create mode 100644 src/broadcom/qpu/qpu_disasm.h
 create mode 100644 src/broadcom/qpu/qpu_instr.c
 create mode 100644 src/broadcom/qpu/qpu_instr.h
 create mode 100644 src/broadcom/qpu/qpu_pack.c
 create mode 100644 src/broadcom/qpu/qpu_validate.c
 create mode 100644 src/broadcom/qpu/tests/.gitignore
 create mode 100644 src/broadcom/qpu/tests/qpu_disasm.c
 create mode 100644 src/compiler/nir/nir_lower_alpha_test.c
 create mode 100644 src/gallium/drivers/vc5/.editorconfig
 create mode 100644 src/gallium/drivers/vc5/Automake.inc
 copy src/{broadcom => gallium/drivers/vc5}/Makefile.am (67%)
 create mode 100644 src/gallium/drivers/vc5/Makefile.sources
 create mode 100644 src/gallium/drivers/vc5/vc5_blit.c
 create mode 100644 src/gallium/drivers/vc5/vc5_bufmgr.c
 create mode 100644 src/gallium/drivers/vc5/vc5_bufmgr.h
 create mode 100644 src/gallium/drivers/vc5/vc5_cl.c
 create mode 100644 src/gallium/drivers/vc5/vc5_cl.h
 create mode 100644 src/gallium/drivers/vc5/vc5_context.c
 create mode 100644 src/gallium/drivers/vc5/vc5_context.h
 create mode 100644 src/gallium/drivers/vc5/vc5_draw.c
 create mode 100644 src/gallium/drivers/vc5/vc5_drm.h
 create mode 100644 src/gallium/drivers/vc5/vc5_emit.c
 create mode 100644 src/gallium/drivers/vc5/vc5_fence.c
 create mode 100644 src/gallium/drivers/vc5/vc5_formats.c
 create mode 100644 src/gallium/drivers/vc5/vc5_job.c
 create mode 100644 src/gallium/drivers/vc5/vc5_program.c
 create mode 100644 src/gallium/drivers/vc5/vc5_query.c
 create mode 100644 src/gallium/drivers/vc5/vc5_rcl.c
 create mode 100644 src/gallium/drivers/vc5/vc5_resource.c
 create mode 100644 src/gallium/drivers/vc5/vc5_resource.h
 create mode 100644 src/gallium/drivers/vc5/vc5_screen.c
 create mode 100644 src/gallium/drivers/vc5/vc5_screen.h
 create mode 100644 src/gallium/drivers/vc5/vc5_simulator.c
 create mode 100644 src/gallium/drivers/vc5/vc5_state.c
 create mode 100644 src/gallium/drivers/vc5/vc5_tiling.c
 create mode 100644 src/gallium/drivers/vc5/vc5_tiling.h
 create mode 100644 src/gallium/drivers/vc5/vc5_uniforms.c
 copy src/{broadcom/Makefile.am => gallium/winsys/vc5/drm/Android.mk} (52%)
 copy src/{broadcom => gallium/winsys/vc5/drm}/Makefile.am (66%)
 create mode 100644 src/gallium/winsys/vc5/drm/Makefile.sources
 create mode 100644 src/gallium/winsys/vc5/drm/vc5_drm_public.h
 create mode 100644 src/gallium/winsys/vc5/drm/vc5_drm_winsys.c

-- 
2.14.1



More information about the mesa-dev mailing list