On Thu, Jan 4, 2018 at 6:39 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote:
> I'm fairly pleased that you were able to get this far with only 3k lines.
> How much is that compared to your TGSI consumer?
>
>

around 4,3k, but keep in mind, that we really only want to convert
things here and all the RA, optimizations and emitting stuff is shared
(on top of the 4,3k loc)

>
> On January 4, 2018 09:02:24 Karol Herbst <kher...@redhat.com> wrote:
>
>> significant changes to last series:
>> * support for geometry, tessellation and compute shaders
>> * support for more intrinsics and operations
>> * lot of fixes for 64 bit types
>> * NV50_PROG_USE_NIR=1 can be used to enable NIR for non debug builds
>>
>> There are some outstanding issues triggered by having 64 bit loads and
>> nir_compact_varyings also does some harm. But I think the current state is
>> quite good and a lot of things will work out of the box already.
>>
>> I mainly tested with piglit, unigine heaven and valley. RealisticRendering
>> Demo
>> doesn't run yet, but this might be related to some 64bit or memory related
>> issues.
>>
>> It would be nice if others could just run some games/tests with it and
>> report
>> back where things are still broken, so that the focus can be on fixing
>> real
>> issues instead of trying to pass all tests first.
>>
>> ./piglit run -x glx -x egl -x streaming-texture-leak -x max-texture-size
>> tests/gpu.py:
>> [26073/26073] skip: 1640, pass: 20773, warn: 9, fail: 1548, crash: 2103
>>
>> the biggest todos looking at the piglit results are:
>> * arb_gpu_shader5 interpolateat* (those nir ops don't map well to nvir)
>>   no good plan on how to properly implement those
>> * arb_gpu_shader5.texturegatheroffsets (nir internal assert)
>>   glsl_to_nir.cpp:2082: virtual void
>> {anonymous}::nir_visitor::visit(ir_texture*): Assertion
>> `ir->offset->type->is_vector() || ir->offset->type->is_scalar()' failed.
>> * some int64 stuff related to compound types
>> * various extensions
>> * variable-indexing (related to above mentioned packing issue)
>> * glsl-4.20.execution.vs_in
>> * some variable-indexing issues related to unaligned memory accesses
>> * some geometry shader fails
>>
>> Karol Herbst (31):
>>   st/nir: treat tess shader input/outputs the same as geom shaders
>>   nvir: print the shader type when dumping headers
>>   nvir: move common converter code in base class
>>   nvir: add lowering helper
>>   nvc0: add support for NIR
>>   nvc0/debug: add env var to make nir default
>>   nvir/nir: run some passes to make the conversion easier
>>   nvir/nir: track defs and provide easy access functions
>>   nvir/nir: add nir type helper functions
>>   nvir/nir: use lowering helper
>>   nvir/nir: run assignSlots
>>   nvir/nir: parse NIR shader info
>>   nvir/nir: implement CFG handling
>>   nvir/nir: implement nir_load_const_instr
>>   nvir/nir: add skeleton for nir_intrinsic_instr
>>   nvir/nir: implement nir_alu_instr handling
>>   nvir/nir: implement nir_intrinsic_load_uniform
>>   nvir/nir: implement nir_intrinsic_store_(per_vertex_)output
>>   nvir/nir: implement nir_intrinsic_load_input
>>   nvir/nir: implement intrinsic_discard(_if)
>>   nvir/nir: implement loading system values
>>   nvir/nir: implement nir_ssa_undef_instr
>>   nvir/nir: implement nir_instr_type_tex
>>   nvir/nir: add getOperation for intrinsics
>>   nvir/nir: implement vote and ballot
>>   nvir/nir: implement variable indexing
>>   nvir/nir: implement geometry shader nir_intrinsics
>>   nvir/nir: implement nir_intrinsic_load_ubo
>>   nvir/nir: implement ssbo intrinsics
>>   nvir/nir: implement images
>>   nvir/nir: add memory barriers
>>
>>  src/gallium/drivers/nouveau/Makefile.sources       |    5 +
>>  src/gallium/drivers/nouveau/codegen/nv50_ir.cpp    |    3 +
>>  src/gallium/drivers/nouveau/codegen/nv50_ir.h      |    1 +
>>  .../nouveau/codegen/nv50_ir_from_common.cpp        |  107 +
>>  .../drivers/nouveau/codegen/nv50_ir_from_common.h  |   58 +
>>  .../drivers/nouveau/codegen/nv50_ir_from_nir.cpp   | 2630
>> ++++++++++++++++++++
>>  .../drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp  |  106 +-
>>  .../nouveau/codegen/nv50_ir_lowering_helper.cpp    |  204 ++
>>  .../nouveau/codegen/nv50_ir_lowering_helper.h      |   50 +
>>  src/gallium/drivers/nouveau/meson.build            |   14 +-
>>  src/gallium/drivers/nouveau/nvc0/nvc0_program.c    |   17 +-
>>  src/gallium/drivers/nouveau/nvc0/nvc0_screen.c     |   50 +-
>>  src/gallium/drivers/nouveau/nvc0/nvc0_state.c      |   27 +-
>>  src/mesa/state_tracker/st_glsl_to_nir.cpp          |    4 +-
>>  14 files changed, 3162 insertions(+), 114 deletions(-)
>>  create mode 100644
>> src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.cpp
>>  create mode 100644
>> src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.h
>>  create mode 100644
>> src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp
>>  create mode 100644
>> src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.cpp
>>  create mode 100644
>> src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.h
>>
>> --
>> 2.14.3
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
>
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to