Hi Rob, I have 2 questions.
1) Do you have any data about performance of shader compilation between: GLSL -> TGSI -> driver IR -> bytecode -and- GLSL -> NIR -> driver IR -> bytecode 2) What's the quality of the driver IR when it comes out of NIR? Is it optimized well? Thanks, Marek On Sat, Mar 26, 2016 at 10:02 PM, Rob Clark <robdcl...@gmail.com> wrote: > From: Rob Clark <robcl...@freedesktop.org> > > Ok, hopefully (close to the) last iteration of this patchset. Quite a > lot of it has r-b's by now. There a few new nir bits (in particular, > the "lower-io-types" pass and some updates to the "lower-outputs-to- > temporaries" pass. Some of that will have some conflicts with stuff > that Jason has in-flight.. I can either rebase on top of his patchset > or rebase his patchset on top of mine, depending on what lands first. > > There is also a new mesa/st pass to lower builtin uniforms, to address > issues that I mentioned with the previous round of patches (ie. built- > ins getting packed differently from normal struct uniforms). > > There is also a new nir_lower_io_types pass that splits up complex > inputs/outputs to vec4 slots so that we can deal with galliums VBO > slot assignment (ie. it will already only assign VBO space to VS > varyings which are actually read). > > Btw, I wouldn't mind starting to push at least parts of this patchset > which have r-b's and don't depend on other parts that don't have r-b. > But I've held off for now to avoid having a bunch of nir passes that > aren't used upstream. > > Rob Clark (16): > gallium: refactor pipe_shader_state to support multiple IR's > gallium: add NIR as a possible IR > nir: add lowering pass for y-transform > nir: add lowering pass for glDrawPixels > nir: add lowering pass for glBitmap > nir: clamp-color-output support > nir: passthrough-edgeflags support > nir: lower-io-types pass > nir: move callsite of lower_outputs_to_temporaries > nir: rename lower_outputs_to_temporaries -> lower_io_to_temporaries > nir/lower-io: split out some helper fxns > nir/lower-io: add support for lowering inputs > glsl: export accessor for builtin-uniform descriptors > mesa/st: split the type_size calculation into it's own file > mesa/st: add nir pass for lowering builtin uniforms > mesa/st: add support for NIR as possible driver IR > > src/compiler/Makefile.sources | 8 +- > src/compiler/glsl/builtin_variables.cpp | 24 +- > src/compiler/glsl/ir.h | 3 + > src/compiler/nir/glsl_to_nir.cpp | 2 - > src/compiler/nir/nir.h | 40 +- > src/compiler/nir/nir_builder.h | 2 +- > src/compiler/nir/nir_lower_bitmap.c | 166 ++++++++ > src/compiler/nir/nir_lower_clamp_color_outputs.c | 117 ++++++ > src/compiler/nir/nir_lower_drawpixels.c | 252 ++++++++++++ > src/compiler/nir/nir_lower_io_to_temporaries.c | 185 +++++++++ > src/compiler/nir/nir_lower_io_types.c | 178 +++++++++ > .../nir/nir_lower_outputs_to_temporaries.c | 133 ------- > src/compiler/nir/nir_lower_passthrough_edgeflags.c | 82 ++++ > src/compiler/nir/nir_lower_wpos_ytransform.c | 310 +++++++++++++++ > src/gallium/auxiliary/hud/hud_context.c | 9 +- > src/gallium/auxiliary/postprocess/pp_run.c | 3 +- > src/gallium/auxiliary/tgsi/tgsi_ureg.c | 4 +- > src/gallium/auxiliary/util/u_simple_shaders.c | 18 +- > src/gallium/auxiliary/util/u_tests.c | 3 +- > .../drivers/freedreno/ir3/ir3_compiler_nir.c | 8 + > src/gallium/include/pipe/p_defines.h | 13 +- > src/gallium/include/pipe/p_screen.h | 9 + > src/gallium/include/pipe/p_state.h | 32 +- > src/mesa/Makefile.sources | 5 + > src/mesa/drivers/dri/i965/brw_nir.c | 1 + > src/mesa/state_tracker/st_glsl_to_nir.cpp | 425 > +++++++++++++++++++++ > src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 104 ++--- > src/mesa/state_tracker/st_glsl_to_tgsi.h | 5 + > src/mesa/state_tracker/st_glsl_types.cpp | 98 +++++ > src/mesa/state_tracker/st_glsl_types.h | 44 +++ > src/mesa/state_tracker/st_nir.h | 60 +++ > src/mesa/state_tracker/st_nir_lower_builtin.c | 242 ++++++++++++ > src/mesa/state_tracker/st_program.c | 148 ++++++- > src/mesa/state_tracker/st_program.h | 6 + > 34 files changed, 2487 insertions(+), 252 deletions(-) > create mode 100644 src/compiler/nir/nir_lower_bitmap.c > create mode 100644 src/compiler/nir/nir_lower_clamp_color_outputs.c > create mode 100644 src/compiler/nir/nir_lower_drawpixels.c > create mode 100644 src/compiler/nir/nir_lower_io_to_temporaries.c > create mode 100644 src/compiler/nir/nir_lower_io_types.c > delete mode 100644 src/compiler/nir/nir_lower_outputs_to_temporaries.c > create mode 100644 src/compiler/nir/nir_lower_passthrough_edgeflags.c > create mode 100644 src/compiler/nir/nir_lower_wpos_ytransform.c > create mode 100644 src/mesa/state_tracker/st_glsl_to_nir.cpp > create mode 100644 src/mesa/state_tracker/st_glsl_types.cpp > create mode 100644 src/mesa/state_tracker/st_glsl_types.h > create mode 100644 src/mesa/state_tracker/st_nir.h > create mode 100644 src/mesa/state_tracker/st_nir_lower_builtin.c > > -- > 2.5.5 > > _______________________________________________ > 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