Reviewed-by: Iago Toral Quiroga
On Thu, 2018-05-31 at 17:21 -0700, Ian Romanick wrote:
> From: Ian Romanick
>
> Some trivial help now, but it also prevents ~40 regressions caused by
> Samuel's "nir: implement the GLSL equivalent of if simplication in
> nir_opt_if" patch.
>
> All Gen4+ platform
Hi there,
2018-04-22 15:36 GMT+02:00 Stefan Schake :
> On Sun, Apr 22, 2018 at 1:11 PM, Mauro Rossi
> wrote:
> > Fix for build errors in src/gallium/auxiliary/util/u_
> debug_stack_android.cpp
> > error: cast to 'void *' from smaller integer type pid_t
> >
> > Fixes: ff904978a1 ("gallium/util: A
We will use the helper while simplifying potential loop terminators
in the following patch.
---
src/compiler/nir/nir_loop_analyze.c | 15 ++-
src/compiler/nir/nir_loop_analyze.h | 11 +++
2 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/compiler/nir/nir_loop
From: Marek Olšák
---
src/gallium/drivers/radeonsi/si_state_binning.c | 14 +-
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_state_binning.c
b/src/gallium/drivers/radeonsi/si_state_binning.c
index 9948a95488c..6d07492ced7 100644
--- a/
This pass detects potential loop terminators and moves intructions
from the non breaking branch after the if.
This enables both the new opt_if_simplification() pass and loop
unrolling to potentially progress further.
Unexpectedly this change speed up shader-db run times by ~3%
Ivy Bridge shader-
From: Marek Olšák
---
.../drivers/radeonsi/si_state_binning.c | 20 +--
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_state_binning.c
b/src/gallium/drivers/radeonsi/si_state_binning.c
index c49f7c7177f..5c794376753 100644
---
From: Marek Olšák
same as amdvlk.
---
src/gallium/drivers/radeonsi/si_gfx_cs.c | 1 -
src/gallium/drivers/radeonsi/si_pipe.h| 1 -
src/gallium/drivers/radeonsi/si_state_draw.c | 31 ---
.../drivers/radeonsi/si_state_shaders.c | 26
4 files c
From: Marek Olšák
This is based on our docs (recently updated), not amdvlk.
---
.../drivers/radeonsi/si_state_binning.c | 73 ++-
1 file changed, 38 insertions(+), 35 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_state_binning.c
b/src/gallium/drivers/radeonsi/
From: Marek Olšák
This may not be needed yet, but let's set it now.
---
src/gallium/drivers/radeonsi/si_state_binning.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_state_binning.c
b/src/gallium/drivers/radeonsi/si_state_binning.c
ind
From: Marek Olšák
---
src/gallium/drivers/radeonsi/si_gfx_cs.c | 1 +
src/gallium/drivers/radeonsi/si_pipe.h | 1 +
src/gallium/drivers/radeonsi/si_state_draw.c | 16 ++--
3 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_gfx_
From: Marek Olšák
---
src/gallium/drivers/radeonsi/si_state_binning.c | 13 +
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_state_binning.c
b/src/gallium/drivers/radeonsi/si_state_binning.c
index 2605b59bbef..895374e4f42 100644
--- a/s
From: Marek Olšák
This might improve performance on Vega10 and Raven.
---
src/gallium/drivers/radeonsi/si_state.h | 46 --
src/gallium/drivers/radeonsi/si_state_draw.c | 64
2 files changed, 81 insertions(+), 29 deletions(-)
diff --git a/src/gallium/drivers
From: Marek Olšák
This was missed when adding CLIPVERTEX support into GS & tess.
---
src/gallium/drivers/radeonsi/si_state_shaders.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c
b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 707bb41
From: Marek Olšák
They have a different frequency of updates and don't change when scissors
change.
I think this even fixes something in si_update_vs_viewport_state.
---
src/gallium/drivers/radeonsi/si_gfx_cs.c | 1 +
src/gallium/drivers/radeonsi/si_state.c | 9 +++--
src/gallium/d
From: Marek Olšák
---
src/gallium/drivers/radeonsi/si_pipe.h | 17 +
src/gallium/drivers/radeonsi/si_state_draw.c| 11 +++
src/gallium/drivers/radeonsi/si_state_shaders.c | 6 ++
.../drivers/radeonsi/si_state_viewport.c| 2 +-
4 files changed, 2
From: Marek Olšák
---
src/gallium/drivers/radeonsi/si_state.c | 4 +-
src/gallium/drivers/radeonsi/si_state_draw.c | 13 +--
.../drivers/radeonsi/si_state_shaders.c | 106 +-
.../drivers/radeonsi/si_state_viewport.c | 13 +--
4 files changed, 61 insertions(+
There are a lot of small improvements and some fixes.
Vega10 & Raven might have improved performance, because this
implements the alternative scissor workaround.
The guardband registers are moved into a separate state atom, because
the coupling with scissor states didn't make much sense.
We migh
From: Marek Olšák
RADV might wanna use this helper too.
---
src/amd/common/ac_llvm_build.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index 4eebbbd4d9d..0a52c1d68bb 100644
--- a/src/amd/common/ac_llvm_
From: Marek Olšák
---
src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
index 1c244fa3c04..24bb89bada7 100644
--- a/src/gal
---
src/amd/vulkan/radv_pipeline.c | 2 -
src/amd/vulkan/radv_shader.c | 2 -
src/compiler/glsl/gl_nir_lower_atomics.c | 2 -
src/compiler/glsl/gl_nir_lower_samplers.c | 2 -
src/compiler/glsl/gl_nir_lower_samplers_as_deref.c |
System values are never arrays or structs so we can assume a direct var
deref. This simplifies things a bit and prevents us from accidentally
throwing away an array index.
Suggested-by: Caio Marcelo de Oliveira Filho
Reviewed-by: Caio Marcelo de Oliveira Filho
---
src/compiler/nir/nir_lower_sy
Note that this patch needs to come late in the series since this pass
can be run after any pass that damages nir_metadata_loop_analysis.
---
src/compiler/nir/nir_loop_analyze.c | 56 -
1 file changed, 56 deletions(-)
diff --git a/src/compiler/nir/nir_loop_analy
From: Rob Clark
Useful in a few other places.. let's not copy-pasta
Signed-off-by: Rob Clark
---
src/compiler/nir/nir.h | 6 ++
src/compiler/nir/nir_propagate_invariant.c | 14 --
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/compiler
From: Rob Clark
Signed-off-by: Rob Clark
---
.../drivers/freedreno/ir3/ir3_compiler_nir.c | 51 +++---
src/gallium/drivers/freedreno/ir3/ir3_nir.c| 4 +-
.../freedreno/ir3/ir3_nir_lower_tg4_to_tex.c | 4 +-
3 files changed, 29 insertions(+), 30 deletions(-)
From: Bas Nieuwenhuizen
---
src/amd/vulkan/radv_meta_bufimage.c | 40 +--
src/amd/vulkan/radv_meta_fast_clear.c | 10 -
src/amd/vulkan/radv_meta_resolve_cs.c | 10 -
3 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/src/amd/vulkan/
From: Bas Nieuwenhuizen
---
src/gallium/drivers/radeonsi/si_shader_nir.c | 74 ++--
1 file changed, 59 insertions(+), 15 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c
b/src/gallium/drivers/radeonsi/si_shader_nir.c
index b4fba8b..21551a7 100644
-
This completely reworks the pass to support deref instructions and
delete support for old deref chains
---
src/compiler/nir/nir_lower_locals_to_regs.c| 188 ++---
.../drivers/freedreno/ir3/ir3_compiler_nir.c | 4 +-
src/intel/compiler/brw_nir.c
From: Bas Nieuwenhuizen
---
src/amd/vulkan/radv_shader_info.c | 106 --
1 file changed, 9 insertions(+), 97 deletions(-)
diff --git a/src/amd/vulkan/radv_shader_info.c
b/src/amd/vulkan/radv_shader_info.c
index 5ef7d74..8026cca 100644
--- a/src/amd/vulkan/rad
From: Bas Nieuwenhuizen
---
src/gallium/drivers/radeonsi/si_shader_nir.c | 34
1 file changed, 4 insertions(+), 30 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c
b/src/gallium/drivers/radeonsi/si_shader_nir.c
index 21551a7..c46d0ab 100644
--
Now that it's rewritten for deref instructions, we can turn it back on.
---
src/gallium/drivers/freedreno/ir3/ir3_nir.c | 2 +-
src/intel/compiler/brw_nir.c| 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_nir.c
b/src/gall
From: Bas Nieuwenhuizen
---
src/amd/common/ac_nir_to_llvm.c | 404 +---
1 file changed, 50 insertions(+), 354 deletions(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 60ac8c4..38d6b31 100644
--- a/src/amd/common/ac_nir
From: Bas Nieuwenhuizen
---
src/amd/vulkan/radv_meta.c| 20 +++-
src/amd/vulkan/radv_meta_blit.c | 30 +-
src/amd/vulkan/radv_meta_blit2d.c | 21 +
src/amd/vulkan/radv_meta_bufimage.c | 22 +--
From: Bas Nieuwenhuizen
---
src/amd/vulkan/radv_shader_info.c | 40 ---
1 file changed, 37 insertions(+), 3 deletions(-)
diff --git a/src/amd/vulkan/radv_shader_info.c
b/src/amd/vulkan/radv_shader_info.c
index 7dd158d..448babb 100644
--- a/src/amd/vulkan/rad
From: Bas Nieuwenhuizen
---
src/amd/common/ac_nir_to_llvm.c | 207 +++-
1 file changed, 160 insertions(+), 47 deletions(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index de47790..3bf2065 100644
--- a/src/amd/common/ac_nir
From: Bas Nieuwenhuizen
---
src/amd/common/ac_nir_to_llvm.c | 26 +-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 3bf2065..ed24a47 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/s
From: Bas Nieuwenhuizen
---
src/amd/vulkan/radv_shader_info.c | 60 +++
1 file changed, 55 insertions(+), 5 deletions(-)
diff --git a/src/amd/vulkan/radv_shader_info.c
b/src/amd/vulkan/radv_shader_info.c
index 448babb..5ef7d74 100644
--- a/src/amd/vulkan/rad
From: Bas Nieuwenhuizen
---
src/amd/common/ac_nir_to_llvm.c | 33 +++--
1 file changed, 27 insertions(+), 6 deletions(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index ed24a47..60ac8c4 100644
--- a/src/amd/common/ac_nir_to_llvm.c
From: Bas Nieuwenhuizen
---
src/amd/common/ac_nir_to_llvm.c | 130 ++--
1 file changed, 97 insertions(+), 33 deletions(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 351ec1e..de47790 100644
--- a/src/amd/common/ac_nir_
From: Bas Nieuwenhuizen
v2: Store the result in ctx->ssa_defs.
---
src/amd/common/ac_nir_to_llvm.c | 31 +++
1 file changed, 31 insertions(+)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index b77d62a..3879723 100644
--- a/src/amd/co
From: Bas Nieuwenhuizen
---
src/amd/common/ac_nir_to_llvm.c | 58 ++---
1 file changed, 43 insertions(+), 15 deletions(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 3879723..afac8f0 100644
--- a/src/amd/common/ac_nir_
---
src/compiler/nir/nir_opt_copy_prop_vars.c | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/compiler/nir/nir_opt_copy_prop_vars.c
b/src/compiler/nir/nir_opt_copy_prop_vars.c
index 2e1a2e0..bf3b793 100644
--- a/src/compiler/nir/nir_opt_copy_prop_vars.c
++
From: Bas Nieuwenhuizen
---
src/amd/common/ac_nir_to_llvm.c | 25 ++---
1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 5d251d9..351ec1e 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/s
From: Bas Nieuwenhuizen
---
src/amd/common/ac_nir_to_llvm.c | 39 +++
src/amd/vulkan/radv_shader_info.c | 13 +
2 files changed, 44 insertions(+), 8 deletions(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
inde
---
src/compiler/nir/nir_split_per_member_structs.c | 86 +
1 file changed, 3 insertions(+), 83 deletions(-)
diff --git a/src/compiler/nir/nir_split_per_member_structs.c
b/src/compiler/nir/nir_split_per_member_structs.c
index 8fd51f1..8235531 100644
--- a/src/compiler/nir
---
src/compiler/nir/nir_opt_copy_prop_vars.c | 316 ++
1 file changed, 146 insertions(+), 170 deletions(-)
diff --git a/src/compiler/nir/nir_opt_copy_prop_vars.c
b/src/compiler/nir/nir_opt_copy_prop_vars.c
index bf3b793..f96bcb9 100644
--- a/src/compiler/nir/nir_opt_
---
src/compiler/nir/nir_opt_undef.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/compiler/nir/nir_opt_undef.c b/src/compiler/nir/nir_opt_undef.c
index 1439ca9..5c07bb7 100644
--- a/src/compiler/nir/nir_opt_undef.c
+++ b/src/compiler/nir/nir_opt_undef.c
@@ -109,7 +109,
---
src/compiler/nir/nir_split_var_copies.c | 216 +---
1 file changed, 6 insertions(+), 210 deletions(-)
diff --git a/src/compiler/nir/nir_split_var_copies.c
b/src/compiler/nir/nir_split_var_copies.c
index bcd1f10..98e05c9 100644
--- a/src/compiler/nir/nir_split_var_
---
src/compiler/nir/nir_lower_var_copies.c | 140 ++--
1 file changed, 8 insertions(+), 132 deletions(-)
diff --git a/src/compiler/nir/nir_lower_var_copies.c
b/src/compiler/nir/nir_lower_var_copies.c
index 227d467..17ec113 100644
--- a/src/compiler/nir/nir_lower_var_
---
src/compiler/nir/nir_propagate_invariant.c | 14 +++---
1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/src/compiler/nir/nir_propagate_invariant.c
b/src/compiler/nir/nir_propagate_invariant.c
index 63340c4..9d17bdb 100644
--- a/src/compiler/nir/nir_propagate_invariant.c
---
src/compiler/nir/nir_remove_dead_variables.c | 86 +---
1 file changed, 3 insertions(+), 83 deletions(-)
diff --git a/src/compiler/nir/nir_remove_dead_variables.c
b/src/compiler/nir/nir_remove_dead_variables.c
index 419..acb1540 100644
--- a/src/compiler/nir/nir_r
---
src/compiler/nir/nir_lower_drawpixels.c | 18 +-
1 file changed, 5 insertions(+), 13 deletions(-)
diff --git a/src/compiler/nir/nir_lower_drawpixels.c
b/src/compiler/nir/nir_lower_drawpixels.c
index 05131af..f8feceb 100644
--- a/src/compiler/nir/nir_lower_drawpixels.c
+++ b/s
---
src/compiler/nir/nir_opt_peephole_select.c | 13 ++---
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/src/compiler/nir/nir_opt_peephole_select.c
b/src/compiler/nir/nir_opt_peephole_select.c
index 608701a..51c03a1 100644
--- a/src/compiler/nir/nir_opt_peephole_select.c
---
src/compiler/nir/nir_lower_tex.c | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/compiler/nir/nir_lower_tex.c b/src/compiler/nir/nir_lower_tex.c
index 449b92f..da7f82c 100644
--- a/src/compiler/nir/nir_lower_tex.c
+++ b/src/compiler/nir/nir_lower_tex.c
@@ -124,9
---
src/compiler/nir/nir_lower_wpos_center.c | 13 ++---
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/src/compiler/nir/nir_lower_wpos_center.c
b/src/compiler/nir/nir_lower_wpos_center.c
index 5b68cac..26f2b5d 100644
--- a/src/compiler/nir/nir_lower_wpos_center.c
+++ b/sr
---
src/compiler/nir/nir_linking_helpers.c | 13 ++---
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/src/compiler/nir/nir_linking_helpers.c
b/src/compiler/nir/nir_linking_helpers.c
index 1a0cb91..1323475 100644
--- a/src/compiler/nir/nir_linking_helpers.c
+++ b/src/compile
---
src/compiler/nir/nir_lower_system_values.c | 24 +++-
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/src/compiler/nir/nir_lower_system_values.c
b/src/compiler/nir/nir_lower_system_values.c
index 0f27d03..d2abc65 100644
--- a/src/compiler/nir/nir_lower_syst
It's only used by the ir3 stand-alone compiler and Rob said we could
delete it.
---
src/compiler/Makefile.sources | 1 -
src/compiler/nir/meson.build| 1 -
src/compiler/nir/nir.h | 1 -
src/compiler/nir/nir_lower_io_types.c
This deletes support for _var intrinsics and legacy deref chains in
favor of deref instructions. The internals are also reworked a bit to
use deref instructions directly.
---
src/compiler/nir/nir_lower_io.c | 105 ++--
1 file changed, 37 insertions(+), 68 delet
---
src/compiler/nir/nir_lower_phis_to_scalar.c | 9 ++---
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/src/compiler/nir/nir_lower_phis_to_scalar.c
b/src/compiler/nir/nir_lower_phis_to_scalar.c
index 6cb9420..46f308e 100644
--- a/src/compiler/nir/nir_lower_phis_to_scalar.c
++
---
src/compiler/nir/nir_lower_wpos_ytransform.c | 38 ++--
1 file changed, 2 insertions(+), 36 deletions(-)
diff --git a/src/compiler/nir/nir_lower_wpos_ytransform.c
b/src/compiler/nir/nir_lower_wpos_ytransform.c
index 6212702..7b20f8a 100644
--- a/src/compiler/nir/nir_l
---
src/compiler/nir/nir_lower_clamp_color_outputs.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/compiler/nir/nir_lower_clamp_color_outputs.c
b/src/compiler/nir/nir_lower_clamp_color_outputs.c
index ec39848..499fce3 100644
--- a/src/compiler/nir/nir_lower_clamp_co
---
src/compiler/nir/nir_lower_global_vars_to_local.c | 22 --
1 file changed, 4 insertions(+), 18 deletions(-)
diff --git a/src/compiler/nir/nir_lower_global_vars_to_local.c
b/src/compiler/nir/nir_lower_global_vars_to_local.c
index 14aa366..9ca4aad 100644
--- a/src/compiler/
---
src/compiler/glsl/gl_nir_lower_atomics.c | 146 +--
1 file changed, 2 insertions(+), 144 deletions(-)
diff --git a/src/compiler/glsl/gl_nir_lower_atomics.c
b/src/compiler/glsl/gl_nir_lower_atomics.c
index 4d1add4..25b2ec8 100644
--- a/src/compiler/glsl/gl_nir_lowe
No one is currently using so we can make this change irrespective of
driver. We may use it again in i965 so it's best to pretend to keep it
working.
---
src/compiler/nir/nir_lower_io.c | 50 ++---
1 file changed, 27 insertions(+), 23 deletions(-)
diff --git a/
---
src/compiler/nir/nir_lower_alpha_test.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/compiler/nir/nir_lower_alpha_test.c
b/src/compiler/nir/nir_lower_alpha_test.c
index 776655a..8dc2fc7 100644
--- a/src/compiler/nir/nir_lower_alpha_test.c
+++ b/src/compiler/nir
---
.../nir/nir_lower_clip_cull_distance_arrays.c | 54 +-
1 file changed, 2 insertions(+), 52 deletions(-)
diff --git a/src/compiler/nir/nir_lower_clip_cull_distance_arrays.c
b/src/compiler/nir/nir_lower_clip_cull_distance_arrays.c
index 69b31d5..3c1a092 100644
--- a/sr
This commit reworks nir_lower_vars_to_ssa to use deref instructions and
deref paths internally instead of deref chains. We also drop support
for the old load/store/copy_var intrinsics.
---
src/compiler/nir/nir_lower_vars_to_ssa.c | 336 ++-
1 file changed, 152 insertio
---
src/compiler/nir/nir_lower_indirect_derefs.c | 163 +--
1 file changed, 2 insertions(+), 161 deletions(-)
diff --git a/src/compiler/nir/nir_lower_indirect_derefs.c
b/src/compiler/nir/nir_lower_indirect_derefs.c
index d91509d..0c8861e 100644
--- a/src/compiler/nir/nir_
---
src/compiler/nir/nir_gather_info.c | 42 +-
1 file changed, 14 insertions(+), 28 deletions(-)
diff --git a/src/compiler/nir/nir_gather_info.c
b/src/compiler/nir/nir_gather_info.c
index fad6c70..f16f105 100644
--- a/src/compiler/nir/nir_gather_info.c
+++ b/
This makes us build the is_direct parameter as the nodes are constructed
rather than as we walk the chain. This will be useful later.
---
src/compiler/nir/nir_lower_vars_to_ssa.c | 41 +++-
1 file changed, 25 insertions(+), 16 deletions(-)
diff --git a/src/compiler/ni
From: Rob Clark
Signed-off-by: Rob Clark
---
src/compiler/Makefile.sources| 1 -
src/compiler/glsl/gl_nir.h | 2 -
src/compiler/glsl/gl_nir_lower_samplers_legacy.c | 163 ---
src/compiler/glsl/meson.build| 1
From: Rob Clark
Signed-off-by: Rob Clark
---
src/mesa/state_tracker/st_glsl_to_nir.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp
b/src/mesa/state_tracker/st_glsl_to_nir.cpp
index 9cdb72c..683db74 100644
--- a/src/mesa/state_tr
From: Rob Clark
This also removes the legacy version of lower_samplers.
Signed-off-by: Rob Clark
---
src/compiler/glsl/gl_nir_lower_samplers_as_deref.c | 182 +
src/mesa/state_tracker/st_glsl_to_nir.cpp | 6 +-
2 files changed, 120 insertions(+), 68 deletions(-)
From: Eric Anholt
---
src/gallium/drivers/vc4/vc4_nir_lower_txf_ms.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/gallium/drivers/vc4/vc4_nir_lower_txf_ms.c
b/src/gallium/drivers/vc4/vc4_nir_lower_txf_ms.c
index 1085243..92b9e89 100644
--- a/src/gallium/drivers/vc4/vc4_nir_lower_txf_m
From: Rob Clark
vc4+vc5 is not really effected by the deref chain to deref instr
conversion, so it no longer needs this pass. For others, now that
all the passes mesa/st uses are using deref instructions, push the
lowering to deref chains back into driver.
Signed-off-by: Rob Clark
---
src/gal
From: Rob Clark
Signed-off-by: Rob Clark
---
src/compiler/nir/nir_lower_io_arrays_to_elements.c | 160 +++--
src/mesa/state_tracker/st_glsl_to_nir.cpp | 4 +-
2 files changed, 83 insertions(+), 81 deletions(-)
diff --git a/src/compiler/nir/nir_lower_io_arrays_to_elem
From: Rob Clark
Signed-off-by: Rob Clark
---
src/mesa/state_tracker/st_glsl_to_nir.cpp | 3 +-
src/mesa/state_tracker/st_nir_lower_builtin.c | 64 ---
2 files changed, 41 insertions(+), 26 deletions(-)
diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp
b/src/m
From: Rob Clark
Signed-off-by: Rob Clark
---
src/amd/vulkan/radv_pipeline.c| 2 ++
src/amd/vulkan/radv_shader.c | 2 --
src/mesa/state_tracker/st_glsl_to_nir.cpp | 3 +--
3 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/amd/vulkan/radv_pipeline.c b/src
From: Rob Clark
Not required for correctness, and makes the order of converting passes
to deref instructions hard to get right for both prog_to_nir and
glsl_to_nir cases.
Signed-off-by: Rob Clark
---
src/mesa/state_tracker/st_glsl_to_nir.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-
From: Rob Clark
Signed-off-by: Rob Clark
---
src/amd/vulkan/radv_pipeline.c| 4 +-
src/compiler/nir/nir_lower_io_to_scalar.c | 92 +++
src/mesa/state_tracker/st_glsl_to_nir.cpp | 2 +-
3 files changed, 49 insertions(+), 49 deletions(-)
diff --git a/src
---
src/compiler/nir/nir.c | 63 --
src/compiler/nir/nir.h | 3 --
src/compiler/nir/nir_lower_constant_initializers.c | 57 +---
3 files changed, 39 insertions(+), 84 deletions(-)
diff --git a/src/compile
---
src/compiler/nir/nir_builder.h | 28
1 file changed, 4 insertions(+), 24 deletions(-)
diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h
index 6a40e84..189a441 100644
--- a/src/compiler/nir/nir_builder.h
+++ b/src/compiler/nir/nir_builder
We change glsl_to_nir to provide derefs for bot textures and samplers
while we're at it. This makes the lowering much easier since we only
either replace sources or remove them.
---
src/compiler/glsl/gl_nir_lower_samplers.c | 150 +-
src/compiler/glsl/glsl_to_nir.cpp
Everything else should already be handled.
---
src/intel/compiler/brw_nir.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c
index a4cbec8..d9642c7 100644
--- a/src/intel/compiler/brw_nir.c
+++ b/src/intel/compiler/brw_
This little refactor makes us stop passing stage around and puts the
builder as the first parameter to some functions.
---
src/compiler/glsl/gl_nir_lower_samplers.c | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/compiler/glsl/gl_nir_lower_samplers.c
b/src
https://bugs.freedesktop.org/show_bug.cgi?id=106748
Marek Olšák changed:
What|Removed |Added
Resolution|--- |FIXED
Status|NEW
From: Rob Clark
To simplify the transition, and make things bisectable, split out a
legacy copy or lower_samplers. This way the i965 and gallium drivers
can independently switch over to deref instructions.
Since the lower_samplers_as_deref pass is only used by gallium drivers,
it can be convert
---
src/intel/vulkan/anv_nir_lower_ycbcr_textures.c | 34 ++---
src/intel/vulkan/anv_pipeline.c | 6 ++---
2 files changed, 22 insertions(+), 18 deletions(-)
diff --git a/src/intel/vulkan/anv_nir_lower_ycbcr_textures.c
b/src/intel/vulkan/anv_nir_lower_ycbcr_t
Since we had to rewrite the deref walking loop anyway, I took the
opportunity to make it a bit clearer and more efficient. In particular,
in the AoA case, we will now emit one minmax instead of one per array
level.
---
src/intel/compiler/brw_fs.h | 2 +-
src/intel/compiler/brw_fs_nir.cpp
---
src/intel/vulkan/anv_nir_apply_pipeline_layout.c | 149 ---
src/intel/vulkan/anv_pipeline.c | 3 -
2 files changed, 78 insertions(+), 74 deletions(-)
diff --git a/src/intel/vulkan/anv_nir_apply_pipeline_layout.c
b/src/intel/vulkan/anv_nir_apply_pipeline
---
src/intel/vulkan/anv_nir_apply_pipeline_layout.c | 46 +++-
1 file changed, 12 insertions(+), 34 deletions(-)
diff --git a/src/intel/vulkan/anv_nir_apply_pipeline_layout.c
b/src/intel/vulkan/anv_nir_apply_pipeline_layout.c
index d5a08f7..87d9a91 100644
--- a/src/intel/vul
Reviewed-by: Caio Marcelo de Oliveira Filho
---
src/intel/vulkan/anv_nir_lower_multiview.c | 17 +
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/src/intel/vulkan/anv_nir_lower_multiview.c
b/src/intel/vulkan/anv_nir_lower_multiview.c
index 6822595..bde7aad 100644
---
src/intel/vulkan/anv_nir_lower_input_attachments.c | 31 +++---
src/intel/vulkan/anv_pipeline.c| 6 ++---
2 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/src/intel/vulkan/anv_nir_lower_input_attachments.c
b/src/intel/vulkan/anv_nir_lower_i
This commit completely reworks function calls in NIR. Instead of having
a set of variables for the parameters and return value, nir_call_instr
now has simply has a number of sources which get mapped to load_param
intrinsics inside the functions. It's up to the client API to build an
ABI on top of
nir_tex_instr_create uses rzalloc so it's already NULL
---
src/intel/blorp/blorp_blit.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c
index c3a093c..b144bdd 100644
--- a/src/intel/blorp/blorp_blit.c
+++ b/src/intel/blorp/blorp_blit
Now that pointers can be derefs and derefs just produce SSA values, we
can convert any pointer to/from SSA.
---
src/compiler/spirv/vtn_variables.c | 73 ++
1 file changed, 42 insertions(+), 31 deletions(-)
diff --git a/src/compiler/spirv/vtn_variables.c
b/src/
---
src/compiler/spirv/vtn_cfg.c | 4 ++--
src/compiler/spirv/vtn_private.h | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/compiler/spirv/vtn_cfg.c b/src/compiler/spirv/vtn_cfg.c
index 089420d..8b240a0 100644
--- a/src/compiler/spirv/vtn_cfg.c
+++ b/src/compiler/spi
This commit removes most of the deref instruction lowering. Instead of
lowering early, we only lower textures and images and we only do so
right before any of the anv image lowering passes.
---
src/intel/vulkan/anv_pipeline.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git
We were only initializing vtn_builder::func for the pre-walk where we
build the CFG. We were only initializing the nir_builder for the later
walk through the instructions even though were were setting b->cursor
for the pre-walk. Let's set both both places so that everything is
consistent. This u
Push constants have been a weird edge-case for a while in that they have
explitic offsets but we've been internally building access chains for
them. This mostly works but it means that passing pointers to push
constants through as function arguments is broken. The easy thing to do
for now is to j
1 - 100 of 286 matches
Mail list logo