Bas Nieuwenhuizen
67df3739c5
radeonsi: Remove deref chain support in nir scan pass.
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
2018-06-22 20:54:00 -07:00
Bas Nieuwenhuizen
9cb345588b
radv: Remove deref chain support in radv shader info pass.
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
2018-06-22 20:54:00 -07:00
Bas Nieuwenhuizen
a1e9d799ad
ac/nir: Remove deref chain support.
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
2018-06-22 20:54:00 -07:00
Bas Nieuwenhuizen
9bfd81b217
radeonsi: Add deref support to the nir scan pass.
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
ba2bd20f87
nir: Rework opt_copy_prop_vars to use deref instructions
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
fa6ffcc083
nir/copy_prop_vars: Re-order some logic in compare_derefs
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
c5d9a65944
nir: Remove deref chain support from split_per_member_structs
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
18175ab66f
nir: Remove deref chain support from opt_undef
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
aeb4bbfd1e
nir: Remove deref chain support from split_var_copies
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
636256cdc7
nir: Remove deref chain support from dead_variables
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
378d7cf3ba
nir: Remove deref chain support from propagate_invariant
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
c6a9c2b60b
nir: Remove deref chain support from lower_var_copies
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
fc59230a46
nir: Remove deref chain support from lower_drawpixels
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
d4dd2ca4a7
nir: Remove deref chain support from opt_peephole_select
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
54bfc0cbcf
nir: Remove deref chain support from lower_tex
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
a3589bb01f
nir: Remove deref chain support from lower_wpos_ytransform
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
3992665c52
nir: Remove deref chain support from lower_wpos_center
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
8a62db7712
nir: Remove deref chain support from lower_system_values
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
e5db1b951c
nir: Remove deref chain support from remove_unused_varyings
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
6bdd867968
nir: Delete lower_io_types
...
It's only used by the ir3 stand-alone compiler and Rob said we could
delete it.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
c6fc653232
nir: Remove deref chain support from lower_phis_to_scalar
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
47ffb893e6
nir: Convert lower_io to deref instructions
...
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.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
0d03c63e91
nir/lower_io: Convert atomic lowering to deref instructions
...
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.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
c290e8c4b0
nir: Remove deref chain support from lower_global_vars_to_local
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
41c52c963a
nir: Remove deref chain support from lower_clamp_color_outputs
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
d2adc08abe
nir: Remove deref chain support from lower_alpha_test
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
81f29d6d33
nir: Remove deref chain support from lower_atomics
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
4b0ea65333
nir: Remove deref chain support from lower_clip_cull_distance_arrays
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
a42af8d0d6
nir: Remove deref chain support from lower_indirect_derefs
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
69866af357
nir: Rework gather_info to entirely use deref instructions
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
b1a18b8797
nir/vars_to_ssa: Rework to entirely use deref instructions
...
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.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
f747ff1969
nir/vars_to_ssa: Add an is_direct field to deref_node
...
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.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Eric Anholt
e1f0a1b029
broadcom/vc4: Remove deref chain support from nir_lower_txf_ms.
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
3d19f116ad
st,ir3,radeonsi: push lower_deref_instrs back into driver
...
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 <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
3e8879be5c
nir/lower_samplers: remove legacy version
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
a20929fed2
nir: convert lower_samplers_as_deref to deref instructions
...
This also removes the legacy version of lower_samplers.
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
0bc15340be
mesa/st: re-enable lower_io_to_elements()
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
245ce114c9
nir: convert lower_io_arrays_to_elements to deref instructions
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
c409cfddcf
mesa/st/nir: convert lower_builtins to deref instructions
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
3859e0b4fe
mesa/st: temporarily disable lower_io_to_elements()
...
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 <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
c6009a1e8e
nir: convert lower_io_to_scalar to deref instructions
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
d143f6c856
move lower_deref_instrs
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
d7b0be48ef
nir: Use deref instructions in lower_constant_initializers
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
85f4149f8a
nir/builder: Use deref instructions for load/store/copy_var
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Bas Nieuwenhuizen
3573570afe
radv: Disable lower_io_to_temporaries during deref changes.
...
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
75286c2d08
nir: Use derefs in nir_lower_samplers
...
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.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
36efae1d66
nir/lower_samplers: Clean up function arguments
...
This little refactor makes us stop passing stage around and puts the
builder as the first parameter to some functions.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
a6ebbbc594
nir/lower_samplers: split out _legacy version for deref chains
...
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 converted in lock-step with moving the lower_deref_instrs
pass, and so does not need a corresponding _legacy clone.
This legacy pass will be removed in a future commit.
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
3891c1906f
intel/blorp: Stop setting tex->texture/sampler
...
nir_tex_instr_create uses rzalloc so it's already NULL
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
606eb56ab9
intel/nir: Only lower load/store derefs
...
Everything else should already be handled.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00