On Fri, Mar 23, 2018 at 8:54 PM, Ilia Mirkin wrote:
> On Fri, Mar 23, 2018 at 8:51 PM, Marek Olšák wrote:
> > diff --git a/src/gallium/include/pipe/p_state.h
> > b/src/gallium/include/pipe/p_state.h
> >>
> >> index 4dce399f84..913a79faee 100644
> >> --- a/src/gallium/include/pipe/p_state.h
> >>
I realized this model won't work with parellel execution.
I will fix it and post another version shortly.
On Wed, Mar 14, 2018 at 03:15:20PM -0700, Kenneth Graunke wrote:
> On Friday, March 9, 2018 2:28:36 PM PDT Dongwon Kim wrote:
> > Optional binding of variables can be processed before linking
With optin '-b', shader-db now generates a shader program binary file
using GetProgramBinary(). This shader program binary can be loaded via
ProgramBinary() to be executed by an application later.
v2: 1. define MAX_LOG_LEN and use it as the size of gl log
2. define MAX_PROG_SIZE and use it as
On Fri, Mar 23, 2018 at 8:51 PM, Marek Olšák wrote:
> diff --git a/src/gallium/include/pipe/p_state.h
> b/src/gallium/include/pipe/p_state.h
>>
>> index 4dce399f84..913a79faee 100644
>> --- a/src/gallium/include/pipe/p_state.h
>> +++ b/src/gallium/include/pipe/p_state.h
>> @@ -113,6 +113,7 @@ stru
diff --git a/src/gallium/include/pipe/p_state.h
b/src/gallium/include/pipe/p_state.h
> index 4dce399f84..913a79faee 100644
> --- a/src/gallium/include/pipe/p_state.h
> +++ b/src/gallium/include/pipe/p_state.h
> @@ -113,6 +113,7 @@ struct pipe_rasterizer_state
> unsigned line_smooth:1;
> un
On Wed, Mar 21, 2018 at 8:04 PM, Roland Scheidegger
wrote:
> Am 22.03.2018 um 00:43 schrieb Ilia Mirkin:
> > On Wed, Mar 21, 2018 at 7:37 PM, Roland Scheidegger
> wrote:
> >> Personally I'm not a big proponent on propagating single-vendor
> >> extensions (which are useless for anything but one s
Reviewed-by: Lionel Landwerlin
On 22/03/18 20:58, Jordan Justen wrote:
Signed-off-by: Jordan Justen
---
src/intel/vulkan/anv_cmd_buffer.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/intel/vulkan/anv_cmd_buffer.c
b/src/intel/vulkan/anv_cmd_buffer.c
index 8f4bf3f0bb9..33687920
Reviewed-by: Lionel Landwerlin
On 23/03/18 22:03, Jordan Justen wrote:
Signed-off-by: Jordan Justen
---
src/intel/vulkan/anv_device.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index 4cacba93430..d400a1328b4 100644
--
On Fri, Mar 23, 2018 at 3:44 PM, Ian Romanick wrote:
> On 03/23/2018 11:39 AM, Matt Turner wrote:
>> On Wed, Mar 21, 2018 at 5:58 PM, Ian Romanick wrote:
>>> From: Ian Romanick
>>>
>>> Now that i965 recognizes that a-b generates the same conditions as 'a <
>>> b', there is no reason to condition
On Fri, Mar 23, 2018 at 12:33 PM, Karol Herbst wrote:
> From: Rob Clark
>
> Not complete, mostly just adding things as I encounter them in CTS. But
> not getting far enough yet to hit most of the OpenCL.std instructions.
>
> v2: update hadd definition (Karol Herbst )
>
> Signed-off-by: Rob Clar
On 03/23/2018 11:39 AM, Matt Turner wrote:
> On Wed, Mar 21, 2018 at 5:58 PM, Ian Romanick wrote:
>> From: Ian Romanick
>>
>> Now that i965 recognizes that a-b generates the same conditions as 'a <
>> b', there is no reason to condition this transformation on 'is not used
>> by conditional.'
>>
>
On 2018-03-22 14:19:47, Lionel Landwerlin wrote:
> There is another macro anv_genX_call() in anv_cmd_buffer.c & anv_blorp.c
This patch was changing anv_genX_call in anv_cmd_buffer.c.
anv_blorp.c appeared to have gen11 handled.
> Also a switch in anv_device.c in anv_device_init_dispatch.
You're
Signed-off-by: Jordan Justen
---
src/intel/vulkan/anv_device.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index 4cacba93430..d400a1328b4 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -136
Thanks!
Reviewed-by: Matt Turner
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
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/
On Fri, Mar 23, 2018 at 2:42 PM, Jason Ekstrand
wrote:
> This is something that Connor and I have been talking about for some time
> now. The basic idea is to replace the current singly linked nir_deref list
> with deref instructions. This is similar to what LLVM does and it offers
> quite a bi
---
.../nir/nir_lower_clip_cull_distance_arrays.c | 69 --
1 file changed, 65 insertions(+), 4 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 95eda82..69b31d5 100644
--- a/sr
---
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
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
Now that push constants are using on-the-fly offsets, we no longer need
to handle access chains in vtn_pointer_to_offset.
---
src/compiler/spirv/spirv_to_nir.c | 2 +-
src/compiler/spirv/vtn_private.h | 2 +-
src/compiler/spirv/vtn_variables.c | 89 ++
3 fi
---
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/compiler/nir/nir_lower_wpos_ytransform.c | 51 +++-
1 file changed, 42 insertions(+), 9 deletions(-)
diff --git a/src/compiler/nir/nir_lower_wpos_ytransform.c
b/src/compiler/nir/nir_lower_wpos_ytransform.c
index 62166e7..6212702 100644
--- a/src/compiler/nir/nir_l
---
src/compiler/nir/nir_lower_io_to_temporaries.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/compiler/nir/nir_lower_io_to_temporaries.c
b/src/compiler/nir/nir_lower_io_to_temporaries.c
index 301ba65..7ba66ba 100644
--- a/src/compiler/nir/nir_lower_io_to_temporaries.c
+++ b/src/com
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
---
src/compiler/nir/nir_split_var_copies.c | 42 +
1 file changed, 42 insertions(+)
diff --git a/src/compiler/nir/nir_split_var_copies.c
b/src/compiler/nir/nir_split_var_copies.c
index bc3ceed..bcd1f10 100644
--- a/src/compiler/nir/nir_split_var_copies.c
+++ b/sr
---
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
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 8bd9b96..b8c18ea 100644
--- a/src/intel/compiler/brw_nir.c
+++ b/src/intel/compiler/brw_
---
src/mesa/state_tracker/st_glsl_to_nir.cpp | 3 ++-
1 file changed, 2 insertions(+), 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 7d111d6..f62135a 100644
--- a/src/mesa/state_tracker/st_glsl_to_nir.cpp
+++ b/src/mesa/st
The only thing still using old-school drefs are function calls.
---
src/compiler/spirv/spirv_to_nir.c | 119 +++--
src/compiler/spirv/vtn_cfg.c | 8 +-
src/compiler/spirv/vtn_glsl450.c | 19 ++--
src/compiler/spirv/vtn_private.h | 13 ++-
src/compiler/spirv/vtn_varia
Once we've gotten rid of everything but the main entrypoint, there's no
reason why we should go ahead and lower them all. This is what radv
does and it will make future work easier.
---
src/intel/vulkan/anv_pipeline.c | 12 +---
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git
---
src/compiler/nir/nir_linking_helpers.c | 50 ++
1 file changed, 27 insertions(+), 23 deletions(-)
diff --git a/src/compiler/nir/nir_linking_helpers.c
b/src/compiler/nir/nir_linking_helpers.c
index 2b0a266..1a0cb91 100644
--- a/src/compiler/nir/nir_linking_help
---
src/intel/compiler/brw_nir.c| 2 ++
src/mesa/drivers/dri/i965/brw_program.c | 3 +--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c
index cf994ac..4fc6cae 100644
--- a/src/intel/compiler/brw_nir.c
+++ b/src
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
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
---
src/compiler/nir/nir_propagate_invariant.c | 23 ---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/src/compiler/nir/nir_propagate_invariant.c
b/src/compiler/nir/nir_propagate_invariant.c
index 7b5bd6c..b48b91c 100644
--- a/src/compiler/nir/nir_propagate_in
---
src/compiler/nir/nir_lower_system_values.c | 10 ++
1 file changed, 10 insertions(+)
diff --git a/src/compiler/nir/nir_lower_system_values.c
b/src/compiler/nir/nir_lower_system_values.c
index 104df51..5191fb3 100644
--- a/src/compiler/nir/nir_lower_system_values.c
+++ b/src/compiler/
---
src/compiler/spirv/vtn_variables.c | 17 ++---
1 file changed, 2 insertions(+), 15 deletions(-)
diff --git a/src/compiler/spirv/vtn_variables.c
b/src/compiler/spirv/vtn_variables.c
index aeb09dd..26b2adf 100644
--- a/src/compiler/spirv/vtn_variables.c
+++ b/src/compiler/spirv/vtn
---
src/compiler/nir/nir_gather_info.c | 26 --
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/src/compiler/nir/nir_gather_info.c
b/src/compiler/nir/nir_gather_info.c
index 743f968..50d67b6 100644
--- a/src/compiler/nir/nir_gather_info.c
+++ b/src/compiler/
Before, we were doing structure splitting in spirv_to_nir.
Unfortunately, this doesn't really work when you think about passing
struct pointers into functions. Doing it later in NIR is a much better
plan.
---
src/amd/vulkan/radv_shader.c | 7 ++
src/compiler/spirv/vtn_private.h | 1 -
---
src/compiler/nir/nir_lower_atomics.c | 119 +--
1 file changed, 113 insertions(+), 6 deletions(-)
diff --git a/src/compiler/nir/nir_lower_atomics.c
b/src/compiler/nir/nir_lower_atomics.c
index ee66aa3..770ebe2 100644
--- a/src/compiler/nir/nir_lower_atomics.c
---
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 12d68d6..692e3b6 100644
--- a/src/compiler/spirv/vtn_cfg.c
+++ b/src/compiler/spi
---
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/mesa/drivers/dri/i965/brw_nir_uniforms.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp
b/src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp
index 69da83a..0fd1492 100644
--- a/src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp
+++ b/src/mes
---
src/compiler/spirv/vtn_variables.c | 52 +++---
1 file changed, 26 insertions(+), 26 deletions(-)
diff --git a/src/compiler/spirv/vtn_variables.c
b/src/compiler/spirv/vtn_variables.c
index 26b2adf..03c898e 100644
--- a/src/compiler/spirv/vtn_variables.c
+++ b/
Previously, pointers fell into two categories: index/offset for UBOs,
SSBOs, etc. and var + access chain for logical pointers. This commit
adds another logical pointer mode that's deref + access chain.
It's tempting to think that we can just replace variable-based pointers
with deref-based or at
This pass doesn't handle deref instructions yet. Making it handle both
legacy derefs and deref instructions would be painful. Since it's not
important for correctness, just disable it for now.
---
src/gallium/drivers/freedreno/ir3/ir3_nir.c | 2 +-
src/intel/compiler/brw_nir.c| 2
---
src/compiler/nir/nir_lower_system_values.c | 13 ++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/compiler/nir/nir_lower_system_values.c
b/src/compiler/nir/nir_lower_system_values.c
index fb560ee..104df51 100644
--- a/src/compiler/nir/nir_lower_system_values.c
---
src/compiler/nir/nir_lower_io.c | 70 +
1 file changed, 50 insertions(+), 20 deletions(-)
diff --git a/src/compiler/nir/nir_lower_io.c b/src/compiler/nir/nir_lower_io.c
index df91feb..549583d 100644
--- a/src/compiler/nir/nir_lower_io.c
+++ b/src/compil
Sometimes it's useful for a pass to be able to clean up its own derefs
instead of waiting for DCE. This little helper makes it very easy.
---
src/compiler/nir/nir.h | 2 ++
src/compiler/nir/nir_deref.c | 13 +
2 files changed, 15 insertions(+)
diff --git a/src/compiler/nir/nir
This replaces some "if (...} { }" with "if (...) continue;" to reduce
nesting depth and makes nir_metadata_preserve conditional on progress
for the given impl.
---
src/compiler/nir/nir_lower_atomics.c | 24
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/src
---
src/compiler/nir/nir_lower_wpos_center.c | 13 -
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/compiler/nir/nir_lower_wpos_center.c
b/src/compiler/nir/nir_lower_wpos_center.c
index dca810d..5b68cac 100644
--- a/src/compiler/nir/nir_lower_wpos_center.c
+++ b/src
---
src/compiler/nir/nir.h | 3 ++
src/compiler/nir/nir_builder.h | 48 ++
src/compiler/nir/nir_lower_var_copies.c | 90 +++--
3 files changed, 138 insertions(+), 3 deletions(-)
diff --git a/src/compiler/nir/nir.h b/src/compil
This adds a concept of "members" to a variable with an interface type.
It allows you to specify the full variable data for each member of the
interface instead of once for the variable. We also add a lowering pass
to lower those variables to a sequence of variables and rewrite all the
derefs accor
---
src/compiler/nir/nir_lower_vars_to_ssa.c | 75
1 file changed, 58 insertions(+), 17 deletions(-)
diff --git a/src/compiler/nir/nir_lower_vars_to_ssa.c
b/src/compiler/nir/nir_lower_vars_to_ssa.c
index 0cc6514..403ce26 100644
--- a/src/compiler/nir/nir_lower_va
This will be needed by anything which changes variable modes without
rewriting derefs.
---
src/compiler/nir/nir.h | 2 ++
src/compiler/nir/nir_deref.c | 30 ++
2 files changed, 32 insertions(+)
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index 9
---
src/compiler/nir/nir_lower_indirect_derefs.c | 156 +++
1 file changed, 156 insertions(+)
diff --git a/src/compiler/nir/nir_lower_indirect_derefs.c
b/src/compiler/nir/nir_lower_indirect_derefs.c
index 02f202d..ebeb79b 100644
--- a/src/compiler/nir/nir_lower_indirect_d
---
src/compiler/nir/nir_builder.h | 6 ++
src/mesa/program/prog_to_nir.c | 29 ++---
2 files changed, 12 insertions(+), 23 deletions(-)
diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h
index f475d13..634a55d 100644
--- a/src/compiler/nir/n
---
src/compiler/nir/nir_lower_global_vars_to_local.c | 62 +++
1 file changed, 42 insertions(+), 20 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 c8fdfde..14aa366 100644
--- a/src/compile
---
src/compiler/nir/nir.h | 2 ++
src/compiler/nir/nir_print.c | 6 ++
2 files changed, 8 insertions(+)
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index 591d53e..ce9e458 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -1249,6 +1249,8 @@ typedef enu
---
src/mesa/program/prog_to_nir.c | 36 ++--
1 file changed, 6 insertions(+), 30 deletions(-)
diff --git a/src/mesa/program/prog_to_nir.c b/src/mesa/program/prog_to_nir.c
index 8ad1dc0..436d1c0 100644
--- a/src/mesa/program/prog_to_nir.c
+++ b/src/mesa/program/pro
This inserts a call to nir_lower_deref_instrs at every call site of
glsl_to_nir, spirv_to_nir, and prog_to_nir.
---
src/amd/vulkan/radv_shader.c| 2 ++
src/gallium/drivers/freedreno/ir3/ir3_cmdline.c | 3 +++
src/intel/vulkan/anv_pipeline.c | 2 ++
src/mesa/driv
Non-intrinsic function handling has never actually been tested and
probably doesn't work. Just get rid of it for now. We can always add
it back in later if it's useful.
---
src/compiler/glsl/glsl_to_nir.cpp | 25 ++---
1 file changed, 2 insertions(+), 23 deletions(-)
diff --
This commit adds a pass for lowering deref instructions to deref chains
as well as some smaller helpers to ease the transition.
---
src/compiler/Makefile.sources | 1 +
src/compiler/nir/meson.build | 1 +
src/compiler/nir/nir.h | 33 +
src/compiler/nir/nir_builder.h | 23
---
src/compiler/glsl/glsl_to_nir.cpp | 239 +++---
1 file changed, 94 insertions(+), 145 deletions(-)
diff --git a/src/compiler/glsl/glsl_to_nir.cpp
b/src/compiler/glsl/glsl_to_nir.cpp
index 1c842b7..db0c911 100644
--- a/src/compiler/glsl/glsl_to_nir.cpp
+++ b/sr
This commit introduces a new nir_deref.h header for helpers that are
less common and really only needed by a few heavy-duty passes. In this
header is a new struct for representing a full deref path which can be
walked in either direction.
---
src/compiler/Makefile.sources | 1 +
src/compiler/nir
---
src/compiler/nir/nir.h| 2 +-
src/compiler/nir/nir_builder.h| 37 +
src/compiler/nir/nir_intrinsics.h | 84 +++
3 files changed, 122 insertions(+), 1 deletion(-)
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
i
---
src/compiler/nir/nir_remove_dead_variables.c | 99
1 file changed, 99 insertions(+)
diff --git a/src/compiler/nir/nir_remove_dead_variables.c
b/src/compiler/nir/nir_remove_dead_variables.c
index eff66f9..6b1927f 100644
--- a/src/compiler/nir/nir_remove_dead_varia
---
src/compiler/nir/nir_builder.h | 106 +
1 file changed, 106 insertions(+)
diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h
index 36e0ae3..66f705b 100644
--- a/src/compiler/nir/nir_builder.h
+++ b/src/compiler/nir/nir_builder.
We were validating this for locals but nothing else.
---
src/compiler/nir/nir_validate.c | 16 +---
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/compiler/nir/nir_validate.c b/src/compiler/nir/nir_validate.c
index a49948f..e9d6bd5 100644
--- a/src/compiler/nir/nir_v
We already have these for bit_size
---
src/compiler/nir/nir.h | 12
1 file changed, 12 insertions(+)
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index 0d207d0..dcd7045 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -626,11 +626,23 @@ nir_src_bit_
This is something that Connor and I have been talking about for some time
now. The basic idea is to replace the current singly linked nir_deref list
with deref instructions. This is similar to what LLVM does and it offers
quite a bit more freedom when we start getting more realistic pointers from
Because nir_instr_remove is an inline wrapper around nir_instr_remove_v,
the compiler should be able to tell that the return value is unused and
not emit the extra code in most cases.
---
src/compiler/nir/nir.c| 2 +-
src/compiler/nir/nir.h| 16
Otherwise, any indirect push constant access results in an assertion
failure when we start digging through the channel_sizes array. This
fixes dEQP-VK.pipeline.push_constant.graphics_pipeline.dynamic_index_vert
on Haswell. It should be a harmless no-op for GL since indirect push
constants aren't
Cc: mesa-sta...@lists.freedesktop.org
---
src/compiler/nir/nir_lower_vars_to_ssa.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/compiler/nir/nir_lower_vars_to_ssa.c
b/src/compiler/nir/nir_lower_vars_to_ssa.c
index e8cfe30..0cc6514 100644
--- a/src/compiler/nir/nir_lower
This fixes the fs-interpolateAtCentroid-block-array piglit test on i965.
Cc: mesa-sta...@lists.freedesktop.org
---
src/compiler/nir/nir_lower_indirect_derefs.c | 13 +++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/compiler/nir/nir_lower_indirect_derefs.c
b/src/co
This commit adds a new instruction type to NIR for handling derefs.
Nothing uses it yet but this adds the data structure as well as all of
the code to validate, print, clone, and [de]serialize them.
---
src/compiler/nir/nir.c| 50 +++
src/compiler/nir/nir.h
On Fri, Mar 23, 2018 at 2:15 PM, Karol Herbst wrote:
> On Fri, Mar 23, 2018 at 10:07 PM, Jason Ekstrand
> wrote:
> > +list
> >
> > On Fri, Mar 23, 2018 at 1:45 PM, Karol Herbst
> wrote:
> >>
> >> On Fri, Mar 23, 2018 at 9:30 PM, Jason Ekstrand
> >> wrote:
> >> > As I've been rewriting core NIR
On Fri, Mar 23, 2018 at 10:07 PM, Jason Ekstrand wrote:
> +list
>
> On Fri, Mar 23, 2018 at 1:45 PM, Karol Herbst wrote:
>>
>> On Fri, Mar 23, 2018 at 9:30 PM, Jason Ekstrand
>> wrote:
>> > As I've been rewriting core NIR deref handling, I've been thinking about
>> > this problem quite a bit. O
+list
On Fri, Mar 23, 2018 at 1:45 PM, Karol Herbst wrote:
> On Fri, Mar 23, 2018 at 9:30 PM, Jason Ekstrand
> wrote:
> > As I've been rewriting core NIR deref handling, I've been thinking about
> > this problem quite a bit. One objective I have is to actually make UBO
> and
> > SSBO access go
On 03/23/2018 12:17 PM, Chema Casanova wrote:
>
>
> On 23/03/18 19:27, Matt Turner wrote:
>> On Wed, Mar 21, 2018 at 5:58 PM, Ian Romanick wrote:
>>> From: Ian Romanick
>>>
>>> This method is similar to the existing ::equals methods. Instead of
>>> testing that two src_regs are equal to each o
On Fri, Mar 23, 2018 at 1:35 PM, Karol Herbst wrote:
> On Fri, Mar 23, 2018 at 9:18 PM, Jason Ekstrand
> wrote:
> > On Fri, Mar 23, 2018 at 12:33 PM, Karol Herbst
> wrote:
> >>
> >> From: Rob Clark
> >>
> >> If local_size is not known at compile time, which is the case with
> >> clover, use th
From: Ian Romanick
A recent commit (see below) triggered some cases where conditional
modifier propagation and dead code elimination would cause a MAD
instruction like the following to be generated:
mad.l.f0 null, ...
Matt pointed out that fs_visitor::fixup_3src_null_dest() fixes cases
lik
On Fri, Mar 23, 2018 at 9:18 PM, Jason Ekstrand wrote:
> On Fri, Mar 23, 2018 at 12:33 PM, Karol Herbst wrote:
>>
>> From: Rob Clark
>>
>> If local_size is not known at compile time, which is the case with
>> clover, use the load_local_group_size intrinsic instead.
>>
>> Signed-off-by: Karol Her
On Fri, Mar 23, 2018 at 9:15 PM, Jason Ekstrand wrote:
> On Fri, Mar 23, 2018 at 12:33 PM, Karol Herbst wrote:
>>
>> With OpenCL the size of some system value depends on the Physical model
>> choosen, so we need a way to load any system value as 32 or 64 bit.
>>
>> Signed-off-by: Karol Herbst
>>
As I've been rewriting core NIR deref handling, I've been thinking about
this problem quite a bit. One objective I have is to actually make UBO and
SSBO access go through derefs instead of just being an offset and index so
that the compiler can better reason about them. In particular, I want to
b
On Fri, Mar 23, 2018 at 12:33 PM, Karol Herbst wrote:
> From: Rob Clark
>
> If local_size is not known at compile time, which is the case with
> clover, use the load_local_group_size intrinsic instead.
>
> Signed-off-by: Karol Herbst
> ---
> src/compiler/nir/nir_lower_system_values.c | 25
On Fri, Mar 23, 2018 at 12:33 PM, Karol Herbst wrote:
> With OpenCL the size of some system value depends on the Physical model
> choosen, so we need a way to load any system value as 32 or 64 bit.
>
> Signed-off-by: Karol Herbst
> ---
> src/compiler/nir/nir_builder.h | 10 +++
From: Marek Olšák
We'll need it for FBFETCH in both TGSI and NIR paths.
---
src/amd/common/ac_llvm_build.c| 56 +
src/amd/common/ac_llvm_build.h| 3 +
src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c | 74 +--
3 files
From: Marek Olšák
MSAA is supported using sample shading. Layered rendering and all texture
targets are also supported.
---
docs/features.txt | 2 +-
docs/relnotes/18.1.0.html | 1 +
src/gallium/drivers/radeonsi/si_blit.c| 8
From: Marek Olšák
For testing.
---
src/gallium/drivers/radeon/r600_pipe_common.h | 1 +
src/gallium/drivers/radeon/r600_texture.c | 13 +++--
src/gallium/drivers/radeonsi/si_pipe.c| 1 +
src/gallium/drivers/radeonsi/si_pipe.h| 1 +
src/gallium/drivers/radeonsi/si_s
From: Marek Olšák
---
src/gallium/drivers/radeonsi/si_shader.c | 54 +++
src/gallium/drivers/radeonsi/si_shader_internal.h | 4 ++
2 files changed, 31 insertions(+), 27 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_shader.c
b/src/gallium/drivers/radeon
Hi,
This is the second and fianl version, and it adds MSAA support and FBFETCH
tests into Gallium.
Please review.
Thanks,
Marek
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
From: Marek Olšák
---
src/gallium/auxiliary/util/u_tests.c | 168 ++-
1 file changed, 128 insertions(+), 40 deletions(-)
diff --git a/src/gallium/auxiliary/util/u_tests.c
b/src/gallium/auxiliary/util/u_tests.c
index 86eee6e68b1..293a4580a9f 100644
--- a/src/gall
OpenCL kernels have parameters (see pipe_grid_info::input), and so we
need a way to access them.
The offset source is the offset of the parameter to load in the kernel input
buffer.
v2: improve commit message
remove BASE
split lower_io changes into separate commit
Signed-off-by: Karol He
From: Rob Clark
If local_size is not known at compile time, which is the case with
clover, use the load_local_group_size intrinsic instead.
Signed-off-by: Karol Herbst
---
src/compiler/nir/nir_lower_system_values.c | 25 +
1 file changed, 17 insertions(+), 8 deletions(-
For OpenCL kernels we have an input buffer where most of the parameters are
stored. For this we have to keep track of alignment and padding rules to
correctly identify the offset of each parameter inside that buffer.
For this we can just rely on the new cl_size and cl_alignment glsl_type
functions
Signed-off-by: Karol Herbst
---
src/compiler/spirv/vtn_private.h | 5 +++--
src/compiler/spirv/vtn_variables.c | 14 +++---
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/src/compiler/spirv/vtn_private.h b/src/compiler/spirv/vtn_private.h
index 510c12faa87..45b581bf80e
Signed-off-by: Karol Herbst
---
src/compiler/spirv/vtn_opencl.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/compiler/spirv/vtn_opencl.c b/src/compiler/spirv/vtn_opencl.c
index 3c5ecd22452..723a7edf9c2 100644
--- a/src/compiler/spirv/vtn_opencl.c
+++ b/src/compiler/spirv/vtn_opencl.c
From: Rob Clark
Not complete, mostly just adding things as I encounter them in CTS. But
not getting far enough yet to hit most of the OpenCL.std instructions.
v2: update hadd definition (Karol Herbst )
Signed-off-by: Rob Clark
Signed-off-by: Karol Herbst
---
src/compiler/nir/meson.build
1 - 100 of 181 matches
Mail list logo