nvir/gv100: initial support
authorBen Skeggs <bskeggs@redhat.com>
Sat, 6 Jun 2020 23:52:35 +0000 (09:52 +1000)
committerMarge Bot <eric+marge@anholt.net>
Wed, 10 Jun 2020 22:52:42 +0000 (22:52 +0000)
commit78103abe8784e788c7d04b807bc47527b504121e
tree2ea2eae8d8847d42f8ed44cce62c2ccfc63d7fa0
parentcacf2961091b92b281b3fb9a98309fded10c1f33
nvir/gv100: initial support

v2:
- add TargetGV100::isBarrierRequired() for OP_BREV
- use NV50_IR_SUBOP_LOP3_LUT() convenience macro where it makes sense
- separated out nir_lower_idiv into its own commit
- make use of the shared function to generate compiler options
- disable lower_fpow, nir's lowering is broken
v3:
- use replaceCvt() instead of custom NEG/ABS/SAT lowering
v4:
- remove WAR from peephole, not needed now we're using replaceCvt()

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5377>
14 files changed:
src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h
src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.cpp [new file with mode: 0644]
src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.h [new file with mode: 0644]
src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp
src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.h
src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.cpp [new file with mode: 0644]
src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.h [new file with mode: 0644]
src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp
src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.cpp [new file with mode: 0644]
src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.h [new file with mode: 0644]
src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp
src/gallium/drivers/nouveau/meson.build