Re: [Mesa-dev] [PATCH] android: gallium/util: fix u_debug_stack_android build

2018-05-31 Thread Mauro Rossi
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:

[Mesa-dev] [PATCH 1/2] nir: move ends_in_break() helper to nir_loop_analyze.h

2018-05-31 Thread Timothy Arceri
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

[Mesa-dev] [PATCH 14/14] radeonsi/gfx9: update & clean up a DPBB heuristic

2018-05-31 Thread Marek Olšák
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 ---

[Mesa-dev] [PATCH 2/2] nir: add opt_if_loop_terminator()

2018-05-31 Thread Timothy Arceri
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

[Mesa-dev] [PATCH 12/14] radeonsi/gfx9: remove UINT_MAX array terminators in bin size tables

2018-05-31 Thread Marek Olšák
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

[Mesa-dev] [PATCH 04/14] radeonsi: move VGT_GS_OUT_PRIM_TYPE into si_shader_gs

2018-05-31 Thread Marek Olšák
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

[Mesa-dev] [PATCH 11/14] radeonsi/gfx9: update bin sizes

2018-05-31 Thread Marek Olšák
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

[Mesa-dev] [PATCH 13/14] radeonsi/gfx9: set POPS_DRAIN_PS_ON_OVERLAP due to a hw bug

2018-05-31 Thread Marek Olšák
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

[Mesa-dev] [PATCH 05/14] radeonsi: don't set VGT_LS_HS_CONFIG if it doesn't change

2018-05-31 Thread Marek Olšák
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

[Mesa-dev] [PATCH 10/14] radeonsi/gfx9: update primitive binning code for EQAA

2018-05-31 Thread Marek Olšák
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 ---

[Mesa-dev] [PATCH 06/14] radeonsi/gfx9: implement the scissor bug workaround without performance drop

2018-05-31 Thread Marek Olšák
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

[Mesa-dev] [PATCH 03/14] radeonsi: record CLIPVERTEX output usage properly for compatibility profiles

2018-05-31 Thread Marek Olšák
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

[Mesa-dev] [PATCH 07/14] radeonsi: move the guardband registers into a separate state atom

2018-05-31 Thread Marek Olšák
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 +++--

[Mesa-dev] [PATCH 08/14] radeonsi: micro-optimize prim checking and fix guardband with lines+adjacency

2018-05-31 Thread Marek Olšák
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,

[Mesa-dev] [PATCH 09/14] radeonsi: assume that rasterizer state is non-NULL in draw_vbo

2018-05-31 Thread Marek Olšák
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

[Mesa-dev] [PATCH 00/14] RadeonSI: New batch of improvements

2018-05-31 Thread Marek Olšák
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

[Mesa-dev] [PATCH 01/14] ac: handle undefined EQAA samples in ac_apply_fmask_to_sample

2018-05-31 Thread Marek Olšák
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 ---

[Mesa-dev] [PATCH 02/14] radeonsi: fix FBFETCH with 2D MSAA arrays

2018-05-31 Thread Marek Olšák
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 ---

[Mesa-dev] [PATCH v4 128/129] nir: Remove old-school deref chain support

2018-05-31 Thread Jason Ekstrand
--- 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 |

[Mesa-dev] [PATCH v4 129/129] nir/lower_system_values: Assert/assume direct var derefs

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 127/129] nir: Remove deref chain support from analyze_loops

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 125/129] nir: promote intrinsic_get_var() to helper

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 126/129] freedreno/ir3: convert to deref instructions

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 124/129] nir: Rework lower_locals_to_regs to use deref instructions

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 121/129] radv: Remove deref chain support in radv shader info pass.

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 118/129] radv: Remove image_var stores.

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 119/129] radeonsi: Add deref support to the nir scan pass.

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 122/129] radeonsi: Remove deref chain support in nir scan pass.

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 123/129] intel, ir3: Re-enable nir_opt_copy_prop_vars

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 120/129] ac/nir: Remove deref chain support.

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 117/129] radv: Use deref instructions for tex derefs in meta shaders.

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 112/129] radv: Add shader info support for image deref instructions.

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 113/129] ac/nir: Add deref based var loads/stores.

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 115/129] ac/nir: Add shared atomic deref instr support.

2018-05-31 Thread Jason Ekstrand
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 +++

[Mesa-dev] [PATCH v4 114/129] radv: Gather info for deref instr based load/store.

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 116/129] ac/nir: Add deref interp support.

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 111/129] ac/nir: Add deref support to image intrinsics.

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 107/129] ac/nir: Implement the deref instr for shared memory.

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 108/129] ac/nir: Support deref instructions in get_sampler_desc.

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 105/129] nir/copy_prop_vars: Re-order some logic in compare_derefs

2018-05-31 Thread Jason Ekstrand
--- 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

[Mesa-dev] [PATCH v4 110/129] ac/nir: Implement derefs for integer gather4 lowering.

2018-05-31 Thread Jason Ekstrand
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 +++

[Mesa-dev] [PATCH v4 109/129] ac/nir: Support deref instructions in tex instructions.

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 104/129] nir: Remove deref chain support from split_per_member_structs

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 106/129] nir: Rework opt_copy_prop_vars to use deref instructions

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 103/129] nir: Remove deref chain support from opt_undef

2018-05-31 Thread Jason Ekstrand
--- 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

[Mesa-dev] [PATCH v4 102/129] nir: Remove deref chain support from split_var_copies

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 099/129] nir: Remove deref chain support from lower_var_copies

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 100/129] nir: Remove deref chain support from propagate_invariant

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 101/129] nir: Remove deref chain support from dead_variables

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 098/129] nir: Remove deref chain support from lower_drawpixels

2018-05-31 Thread Jason Ekstrand
--- 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 +++

[Mesa-dev] [PATCH v4 097/129] nir: Remove deref chain support from opt_peephole_select

2018-05-31 Thread Jason Ekstrand
--- 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

[Mesa-dev] [PATCH v4 096/129] nir: Remove deref chain support from lower_tex

2018-05-31 Thread Jason Ekstrand
--- 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 @@

[Mesa-dev] [PATCH v4 094/129] nir: Remove deref chain support from lower_wpos_center

2018-05-31 Thread Jason Ekstrand
--- 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 +++

[Mesa-dev] [PATCH v4 092/129] nir: Remove deref chain support from remove_unused_varyings

2018-05-31 Thread Jason Ekstrand
--- 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 +++

[Mesa-dev] [PATCH v4 093/129] nir: Remove deref chain support from lower_system_values

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 091/129] nir: Delete lower_io_types

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 089/129] nir: Convert lower_io to deref instructions

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 090/129] nir: Remove deref chain support from lower_phis_to_scalar

2018-05-31 Thread Jason Ekstrand
--- 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

[Mesa-dev] [PATCH v4 095/129] nir: Remove deref chain support from lower_wpos_ytransform

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 084/129] nir: Remove deref chain support from lower_atomics

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 088/129] nir/lower_io: Convert atomic lowering to deref instructions

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 086/129] nir: Remove deref chain support from lower_clamp_color_outputs

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 087/129] nir: Remove deref chain support from lower_global_vars_to_local

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 085/129] nir: Remove deref chain support from lower_alpha_test

2018-05-31 Thread Jason Ekstrand
--- 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 +++

[Mesa-dev] [PATCH v4 083/129] nir: Remove deref chain support from lower_clip_cull_distance_arrays

2018-05-31 Thread Jason Ekstrand
--- .../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 ---

[Mesa-dev] [PATCH v4 080/129] nir/vars_to_ssa: Rework to entirely use deref instructions

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 079/129] nir/vars_to_ssa: Add an is_direct field to deref_node

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 082/129] nir: Remove deref chain support from lower_indirect_derefs

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 081/129] nir: Rework gather_info to entirely use deref instructions

2018-05-31 Thread Jason Ekstrand
--- 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 +++

[Mesa-dev] [PATCH v4 076/129] nir/lower_samplers: remove legacy version

2018-05-31 Thread Jason Ekstrand
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|

[Mesa-dev] [PATCH v4 074/129] mesa/st: re-enable lower_io_to_elements()

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 075/129] nir: convert lower_samplers_as_deref to deref instructions

2018-05-31 Thread Jason Ekstrand
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(-)

[Mesa-dev] [PATCH v4 078/129] broadcom/vc4: Remove deref chain support from nir_lower_txf_ms.

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 077/129] st, ir3, radeonsi: push lower_deref_instrs back into driver

2018-05-31 Thread Jason Ekstrand
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 ---

[Mesa-dev] [PATCH v4 073/129] nir: convert lower_io_arrays_to_elements to deref instructions

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 071/129] mesa/st: temporarily disable lower_io_to_elements()

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 070/129] nir: convert lower_io_to_scalar to deref instructions

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 072/129] mesa/st/nir: convert lower_builtins to deref instructions

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 069/129] move lower_deref_instrs

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 068/129] nir: Use deref instructions in lower_constant_initializers

2018-05-31 Thread Jason Ekstrand
--- 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

[Mesa-dev] [PATCH v4 067/129] nir/builder: Use deref instructions for load/store/copy_var

2018-05-31 Thread Jason Ekstrand
--- 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 +++

[Mesa-dev] [PATCH v4 066/129] nir: Use derefs in nir_lower_samplers

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 062/129] intel/nir: Only lower load/store derefs

2018-05-31 Thread Jason Ekstrand
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 +++

[Mesa-dev] [PATCH v4 065/129] nir/lower_samplers: Clean up function arguments

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [Bug 106748] st/mesa: use PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY broke qemu -display sdl, gl=on

2018-05-31 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=106748 Marek Olšák changed: What|Removed |Added Resolution|--- |FIXED Status|NEW

[Mesa-dev] [PATCH v4 064/129] nir/lower_samplers: split out _legacy version for deref chains

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 057/129] anv/pipeline: Convert YCbCr lowering to deref instructiosn

2018-05-31 Thread Jason Ekstrand
--- 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

[Mesa-dev] [PATCH v4 061/129] intel/fs: Use image_deref intrinsics instead of image_var

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 060/129] anv/pipeline: Convert apply_pipeline_layout to deref instructions

2018-05-31 Thread Jason Ekstrand
--- 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

[Mesa-dev] [PATCH v4 059/129] anv/apply_pipeline_layout: Simplify extract_tex_src_plane

2018-05-31 Thread Jason Ekstrand
--- 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 ---

[Mesa-dev] [PATCH v4 058/129] anv/pipeline: Convert lower_multiview to deref instructions

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 056/129] anv/pipeline: Convert lower_input_attachments to deref instructions

2018-05-31 Thread Jason Ekstrand
--- 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

[Mesa-dev] [PATCH v4 054/129] nir,spirv: Rework function calls

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 063/129] intel/blorp: Stop setting tex->texture/sampler

2018-05-31 Thread Jason Ekstrand
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 +++

[Mesa-dev] [PATCH v4 051/129] spirv: Update vtn_pointer_to/from_ssa to handle deref pointers

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 052/129] spirv: Record the type of functions

2018-05-31 Thread Jason Ekstrand
--- 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 +++

[Mesa-dev] [PATCH v4 053/129] spirv/cfg: Make the builder fully capable for both walks

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 055/129] anv/pipeline: Do less deref instruction lowering

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 048/129] spirv: Make push constants an offset-based pointer

2018-05-31 Thread Jason Ekstrand
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

[Mesa-dev] [PATCH v4 042/129] i965: Move nir_lower_deref_instrs to right before locals_to_regs

2018-05-31 Thread Jason Ekstrand
Reviewed-by: Caio Marcelo de Oliveira Filho --- src/intel/blorp/blorp.c | 2 -- src/intel/compiler/brw_nir.c| 2 ++ src/mesa/drivers/dri/i965/brw_program.c | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/intel/blorp/blorp.c

  1   2   3   >