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