History log of /external/mesa3d/src/amd/common/ac_nir_to_llvm.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
13afc45f8fe61467e4e97fd3164308562c7c721f 16-Mar-2017 Alex Smith <asmith@feralinteractive.com> radv/ac: Fix shared memory offset calculation

The index passed to get_shared_memory_ptr is an attribute slot index,
i.e. the index of a vec4 within LDS. Therefore this must be scaled by
sizeof(vec4) to give the LDS byte offset.

Fixes: f4e499ec791 ("radv: add initial non-conformant radv vulkan driver")
Signed-off-by: Alex Smith <asmith@feralinteractive.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
CC: <mesa-stable@lists.freedesktop.org>
(cherry picked from commit ce4058dafd2dd283addaa99e8d5b51e53f634f9b)
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
ed5c3fad3778d338f0f886e87381bd9e1d3737cf 13-Mar-2017 Dave Airlie <airlied@redhat.com> radv: setup llvm target data layout

Ported from radeonsi, pointed out by Tom.

"This prevents LLVM from using sext instructions for local memory
offsets and allows the backend to fold immediate offsets into the
instruction. This also prevents some incorrect code generation for
ptrtoint and inttoptr instructions."

Cc: "13.0 17.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Tom Stellard <tstellar@redhat.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit b8ee70384adc3286d18febba7a92047118cc0f0f)
[Emil Velikov: resolve trivial conflicts]
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>

Conflicts:
src/amd/common/ac_nir_to_llvm.c
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
823f6d48a12c748312e46db76f8f159e42bfe622 07-Mar-2017 Fredrik Höglund <fredrik@kde.org> radv/ac: fix multiple descriptor sets with dynamic buffers

The dynamic_offset_offset in the descriptor set binding layout is
relative to the dynamic_offset_start for the set in the pipeline
layout.

Cc: 17.0 <mesa-stable@lists.freedesktop.org>
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
(cherry picked from commit 162beb2abbe6b81d81863b3ac88ec8effcbf7c9d)
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
21e3f2f24c45e76d66c520173ced26158ef079fc 28-Feb-2017 Dave Airlie <airlied@redhat.com> radv: fix txs for sampler buffers

I messed this up when I wrote it, this fixes:
dEQP-VK.memory.pipeline_barrier.*uniform_texel_buffer.*

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit e66be3d3bb40160c7b7d57c596e4a25da168f1e6)
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
1e868de4500a46abde745a517ead42afd3a904ca 06-Feb-2017 Dave Airlie <airlied@redhat.com> radv/ac: avoid the fmask path when doing txs.

This fixes the vulkan samples deferredmultisampling test.

Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit a864ef7f4824a8319b74d4cf1c82e2dd25672ff1)
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
241e0b7068c0ae8e5e3480b9f6846a5749184626 03-Feb-2017 Dave Airlie <airlied@redhat.com> radv: fix shared memory load/stores.

If we have an indirect index here we need to scale it by attribute slots
e.g. is this is vec2[256] then we get an indir_index in the 0.255 range
but the vec2 are aligned inside vec4 slots. So scale the indir index,
then extract the channels.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 106a51440d018031b94c91758eecc7424a3bb5ee)
[Emil Velikov: resolve trivial conflicts]
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>

Conflicts:
src/amd/common/ac_nir_to_llvm.c
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
e789af4a9f10e56f908e3c55c6d764d62c7838de 03-Feb-2017 Dave Airlie <airlied@redhat.com> radv/ac: correctly size shared memory usage.

We count the number of slots used, but slots are vec4 sized,
so we have to scale by 16 not 4.

Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit a1a8aef4c9dbdf254036adada95f0d6e394c5d6a)
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
9ecfbafedb09565b6ac5735c7893b0f58a46b8df 31-Jan-2017 Dave Airlie <airlied@redhat.com> radv/ac: apply slice rounding to 1d arrays as well.

Fixes:
dEQP-VK.glsl.texture_functions.texture.*1darray*

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 8477aa71d902d6a6fd89741151f8d119a72a7dc0)
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
eaf311d90d20c819e5fa8a9cb7dd781bdb257041 30-Jan-2017 Dave Airlie <airlied@redhat.com> radv/ac: implement txs for buffer textures.

This fixes a bunch of buffer related:
dEQP-VK.memory.pipeline_barrier.*
tests, that were crashing in LLVM due to this being missing.

Reviewed-by: Andres Rodriguez<andresx7@gmail.com>
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 0ecd426490b043aac6a5db0a6e0feaa39f6d9c54)
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
bbb4562def6e91e69b1613b1c8d72d4a125c7d45 30-Jan-2017 Dave Airlie <airlied@redhat.com> radv/ac: handle nir irem opcode.

This fixes:
dEQP-VK.spirv_assembly.instruction.compute.opsrem.*

Reviewed-by: Andres Rodriguez <andresx7@gmail.com>
Cc: "17.0" <mesa-stable@lists.freedesktop.org"
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit ecc3fa3ba3967624f67abe8d8188102a08c20d7c)
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
7083ca262581540265765bb0af7a11616fe1c6a3 30-Jan-2017 Dave Airlie <airlied@redhat.com> radv/ac: fix multisample subpass image.

We weren't adding the fragment position properly.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 059dd171759bb89d915c049de1ca1c93865c21d3)
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
d7d772f9031ece78320f1765b811d5a1e588b311 28-Jan-2017 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> radv/ac: Use base in push constant loads.

Apparently the source is not an address but an offset, so we actually
need to use the base.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
CC: <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 96c60b7f07e626d9ca0fc5789117f0c725ba1da2)
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
788610081198260d6974f86ed62a4b9aaf59b8c4 16-Jan-2017 Dave Airlie <airlied@redhat.com> radv/ac: split part of llvm compile into a separate function

This is needed to have common code for gs copy shader emission.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
5dadd7ca27da6cd5bbac95c8e09130ec4a384e2b 16-Jan-2017 Dave Airlie <airlied@redhat.com> radv/ac: switch an if to switch

makes it easier to add other shader stages.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
6b635bbe16c93ad13afa3390d20c2f0f033e065d 16-Jan-2017 Dave Airlie <airlied@redhat.com> radv: add support for writing layer/viewport index (v2)

This just adds the infrastructure to allow writing layer
and viewport index. It's just a first patch out of the geom
shader tree, and doesn't do much on its own.

v2: add missing if statement change (Bas)

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
d4392a877c0d4c930e8d2a016ae2c8b801e49c49 16-Jan-2017 Dave Airlie <airlied@redhat.com> radv/ac: use ctx->voidt in more places. (v2)

Just noticed this while in the area.

v2: one replacement was incorrect.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
1007047ca1086eef89f65c87e7ea2371c4f80513 10-Jan-2017 Nicolai Hähnle <nicolai.haehnle@amd.com> ac/nir: use ac_emit_fdiv throughout

... and eliminate emit_fdiv and nir_to_llvm_context::fpmath_md_*, which
are now unused.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
38c67f77ed35423bdba5ee1ffd5ab6e5b1765f90 10-Jan-2017 Nicolai Hähnle <nicolai.haehnle@amd.com> ac/nir: use ac_build_gather_values[_extended] throughout

... and eliminate the non-ac copies. Mostly straight-forward
search & replace.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
2c9d26a3564c215695758b4d6b44a838b7a286d4 10-Jan-2017 Nicolai Hähnle <nicolai.haehnle@amd.com> ac/nir: use ac_emit_llvm_intrinsic throughout

... by straight-forward search & replace, and eliminate
emit_llvm_intrinsic.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
a0ce09b4b2a3063e49a02de3d12096cf462d10a3 10-Jan-2017 Nicolai Hähnle <nicolai.haehnle@amd.com> amd/common: unify cube map coordinate handling between radeonsi and radv

Code is taken from a combination of radv (for the more basic functions,
to avoid gallivm dependencies) and radeonsi (for the new and improved
derivative calculations).

v2: add 0.5 offset to tex coords only after derivative calculation

v3:
- really only touch the first three coordinates
- rebase on the removal of the 1.5 --> 0.5 offset change

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> (v2)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
ada66480b29be5730b217943e626b246ce6c67fd 30-Dec-2016 Dave Airlie <airlied@redhat.com> radv/ac: add support for multi sample image coords

This just adds the nir->llvm support, enabling
the extension causes some failures on llvm 3.9 at least,
but this code seems fine.

NIR passes the sampler in src[1].x, and we LLVM/SI requires
it as the last parameters in the coords (coord[2] for 2D,
coord[3] for 2DArray).

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
4813c9ade70b4181ccf5d0ab462cf34da96373a6 23-Dec-2016 Dave Airlie <airlied@redhat.com> radv: handle multi-component shared load/stores.

This was seen in doom shaders, so handle it properly.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave AIrlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
27a8aab882980e35b66f7f318fd2fd7b500401b4 07-Dec-2016 Fredrik Höglund <fredrik@kde.org> radv: fix dual source blending

Add the index to the location when assigning driver locations for
output variables.

Otherwise two fragment shader outputs declared as:

layout (location = 0, index = 0) out vec4 output1;
layout (location = 0, index = 1) out vec4 output2;

will end up aliasing one another.

Note that this patch will make the second output variable in the above
example alias a possible third output variable with location = 1 and
index = 0. But this shouldn't be a problem in practice since only one
color attachment is supported when dual-source blending is used.

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
fd249c803e3ae2acb83f5e3b7152728e73228b7b 12-Dec-2016 Ilia Mirkin <imirkin@alum.mit.edu> treewide: s/comparitor/comparator/

git grep -l comparitor | xargs sed -i 's/comparitor/comparator/g'

Just happened to notice this in a patch that was sent and included one
of the tokens in question.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Acked-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
90c29784c66577f33ca5c8139e33ad027a212125 10-Dec-2016 Grazvydas Ignotas <notasas@gmail.com> radv/ac: some fix maybe-uninitialized warnings

Mark some paths unreachable so that compiler knows variables are
initialized in all valid paths.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
bd56de88dfb192310f3432a3c0e0ddc3469c6d55 08-Dec-2016 Dave Airlie <airlied@redhat.com> radv/ac: no need to pass nir to the post outputs handling

We don't use the nir shader in here at all.

Reviewed by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
d38eece4e6bde42f8e63238497075213bb573f72 08-Dec-2016 Dave Airlie <airlied@redhat.com> radv: fix warnings in ubo load code.

Reviewed by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
0fafe94a3904f3e20a566077d49983d33b909b17 08-Dec-2016 Dave Airlie <airlied@redhat.com> radv/ac: pass a mask of array params not a number.

This makes it easier to add new params before the array ones.

Reviewed by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
c46c376977275a3327c42ad30ec4df4cb7a4b060 08-Dec-2016 Dave Airlie <airlied@redhat.com> radv/ac: don't pass nir to create_function

This isn't needed for later things like geom shader copy shaders,
we won't have NIR.

Reviewed by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
e54af02567c8482c3aae983bdb6b58abe41c0eb0 08-Dec-2016 Dave Airlie <airlied@redhat.com> radv/ac: use build_gep0 instead of opencoding it.

Reviewed by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
c7dc1b010ae581f532240b661cb3d1c82e117e7e 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: make push constants optional

We don't set the push constants slot up unless
something will cause us to need it.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
dfef9c7c1fcf0070784d1a19386d885bb1b3f511 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: only emit descriptor sgprs when needed

This only emits enough descriptor sgprs for the number
of sets in the layout, and only emits the descriptors
necessary for the current stage.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
ae61ddabe8cfa1e2c8c55c478a7ea70563f64b63 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: move userdata sgpr ownership to compiler side.

This isn't fully what we want yet, but is a good step on the way.

This allows the compiler to create the information structures
for the state setting side, however the state setting still expects
things to be pretty much in 2 sgpr wide register sets, and can't
handle the indirect setting yet.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
92d7563fba04219a0a96a4949182b1f94b6d79b0 01-Dec-2016 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> ac/nir: Only use the first component for SSBO atomics.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
8033f78f94c7c6349e1c6a4d63fe3accb34b36f1 05-Dec-2016 Dave Airlie <airlied@redhat.com> radv: fix another regression since shadow fixes.

This fixes:
dEQP-VK.glsl.texture_gather.basic.2d.depth32f.*

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
abc887faa108b52f1e622ac8c1a3e30c4f317475 30-Nov-2016 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> ac/nir: Fix out of bounds array access.

With nir_intrinsic_ssbo_atomic_comp_swap we run out of params.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
f3a3fea973a145fe16f70866dcfc22c3c5322a91 24-Nov-2016 Dave Airlie <airlied@redhat.com> radv: force persample shading when required.

We need to force persample shading when
a) shader uses sample_id
b) shader uses sample_position
c) shader uses sample qualifier.

Also since ps_iter_samples can now change independently of the
rasterizer samples we need to move setting the regs more often.

This fixes:
dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.*
dEQP-VK.pipeline.multisample_interpolation.centroid_qualifier_inside_primitive.137_191_1.*
dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_distinct_values.*
dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.128_128_1.*

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
b8c9ce4459af5857c3f68f4bd6a3e33357e22337 29-Nov-2016 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> ac/nir: Fix accessing an unitialized value.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
05533ce418851b12fd0a1e940a633f9280203aab 29-Nov-2016 Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> radv: Use different intrinsic for ubo loads.

Not sure about the deprecation path, but this intrinsic
can be lowered to SMEM loads. This results in a significant
Talos performance improvement.

v2: Fix for LLVM attribute changes.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
020978af12ef6d598bc5efeae3704c0eb8cdafd2 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv: brown-paper bag for a forgotten else.

This fixes the fix:
radv/ac/llvm: fix regression with shadow samplers fix

Signed-off-by: Dave Airlie <airlied@redhat.com>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
b2e217369e1ca4bf9d7741721559a4506b1f0ce8 28-Nov-2016 Dave Airlie <airlied@redhat.com> radv/ac/llvm: fix regression with shadow samplers fix

This fixes b56b54cbf1d8e70c87a434da5350d11533e5fed8:
radv/ac/llvm: shadow samplers only return one value

It makes sure we only do that for shadow sampling, as
opposed to sizing requests.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
b56b54cbf1d8e70c87a434da5350d11533e5fed8 24-Oct-2016 Dave Airlie <airlied@redhat.com> radv/ac/llvm: shadow samplers only return one value.

The intrinsic engine asserts in llvm due to this.

Reported-by: Christoph Haag <haagch+mesadev@frickel.club>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
bb8ac183404541ca8dee31563709d5aca8de0e73 24-Nov-2016 Dave Airlie <airlied@redhat.com> radv: fix texel fetch offset with 2d arrays.

The code didn't limit the offsets to the number supplied, so
if we expected 3 but only got 2 we were accessing undefined memory.

This fixes random failures in:
dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler2darray_*

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
5cbcbc75f437b805e5c3c0c3b5c1192c0d68c1f5 23-Nov-2016 Fredrik Höglund <fredrik@kde.org> radv: add support for anisotropic filtering on SI-CI

Ported from radeonsi.

Note that si_make_texture_descriptor() already sets img7 to the mask
value referred to in the comment.

Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
220912e21432dba996cb2694dea480c65cf6a7c6 21-Nov-2016 Dave Airlie <airlied@redhat.com> radv: fix sample id loading

The sample id is packed into bits 8-12, so adjust
things properly.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
3c6151ccafeb47febb8320b7f4f7bbc0e819708e 16-Nov-2016 Dave Airlie <airlied@redhat.com> radv/ac: add implementation of load_sample_pos intrinsic.

This fixes a bunch of crashes in CTS tests looking for this.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
5697cfb7ec08e827a48adc2cd34364696e209147 21-Nov-2016 Dave Airlie <airlied@redhat.com> radv/ac: cleanup ddxy emission

This cleans up the ddxy emission along the same lines as
radeonsi. It also means we don't use LDS on VI chips we
use the dspermute interface, it also removes some duplicated
code.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
b1340fd708bb873617b8a529ac45cbc9507bd6c4 18-Nov-2016 Dave Airlie <airlied@redhat.com> radv: spir-v allows texture size query with and without lod.

The translation to llvm was failing here due to required lod.

This fixes some new SteamVR shaders.

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
713522fb8d4366d29be18edc3d5f33faba1cb7c4 15-Nov-2016 Dave Airlie <airlied@redhat.com> ac/nir/llvm: fix channel in texture gather lowering code.

This fixes a number of CTS tests like:
dEQP-VK.glsl.texture_gather.basic.2d.rgba8ui.size_npot.clamp_to_edge_repeat

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
0b98e885e707a679fffb096aa802cfe4a80ce334 11-Nov-2016 Daniel Scharrer <daniel@constexpr.org> ac/nir/llvm: Fix setting function attributes for intrinsics

This fixes a NULL pointer dereference for intrinsics with more than
one function attribute introduced in commit 2fdaf38.
The fix is ported from the lp_build_intrinsic changes in commit 8bdd52c.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
2de85eb97ab2ef45ec23f694a566cd0ec8192885 10-Nov-2016 Dave Airlie <airlied@redhat.com> radv: fix texturesamples to handle single sample case

We can only read the valid samples if this is an MSAA
texture, which means the type field must be 0x14 or 0x15.

This fixes:
dEQP-VK.glsl.texture_functions.query.texturesamples.*

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
19decd8ce43a7fad9b6a276d47296336f062ca23 10-Nov-2016 Dave Airlie <airlied@redhat.com> radv: fixup botched llvm API changes.

Reported-by: Jan Vesely <jan.vesely@rutgers.edu>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
2fdaf38c0106d87f89fa20fbe229e66d9a3ad14a 10-Nov-2016 Dave Airlie <airlied@redhat.com> ac/nir/llvm: adopt to new LLVM attribute API.

Ported from corresponding changes to gallivm.

tested build against 3.9 and master.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
dd77faeca2819fc78a72f71ca9b996c209378cde 02-Nov-2016 Dave Airlie <airlied@redhat.com> ac/nir: add support for discard_if intrinsic (v2)

We are going to start lowering to this in NIR code,
so prepare radv for it.

v2: handle conversion to kilp properly (nha)

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
bafc75b4370bfbec0c91ff6bb4d4972fb37bb22a 08-Nov-2016 Dave Airlie <airlied@redhat.com> radv: emit correct last export when Z/stencil export is enabled

I was getting a random GPU hang in the renderpass simple tests,
it turns out sometimes radv emitted the wrong thing "last".

This fixes the logic to emit Z/stencil last if they occur,
and not mark a color output as last. Also this relies on the
Z/STENCIL being the first two fragment outputs, which they are
so yay.

Fixes: dEQP-VK.renderpass.simple.color_depth (random hangs)
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
8eabee9ec0c164bd18babfe15311db14040ad337 27-Oct-2016 Nicolai Hähnle <nicolai.haehnle@amd.com> amd/common: move llvm helper prototype to ac_llvm_util.h

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
d548fa882b865b8e5052954b872e392312c38ab8 24-Oct-2016 Dave Airlie <airlied@redhat.com> radv/ac/llvm: trim texture return values

The intrinsic engine asserts in llvm due to this,
as we put a vec4 into a vec1, and the next instruction
isn't expecting it.

So trim the vector at the end before inserting it.

Reported-by: Christoph Haag <haagch+mesadev@frickel.club>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
e1af20f18a86f52a9640faf2d4ff8a71b0a4fa9b 13-Oct-2016 Timothy Arceri <timothy.arceri@collabora.com> nir/i965/anv/radv/gallium: make shader info a pointer

When restoring something from shader cache we won't have and don't
want to create a nir_shader this change detaches the two.

There are other advantages such as being able to reuse the
shader info populated by GLSL IR.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
d842546ad1ebdb4825f0cbca2d68a56139d88e2a 20-Oct-2016 Dave Airlie <airlied@redhat.com> radv: use emit_icmp for samples_identical

On a debug llvm build we'd assert on the next compare
when the return from samples_identical was i1 instead
of i32.

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
67c91ef2a228b0843bdbb4b7b7128ef45e3dd71f 19-Oct-2016 Dave Airlie <airlied@redhat.com> radv: fix samples_identical return value.

This was returning an inversion, so not doing as it should have.

We need to compare the fmask value with 0, and return the result
from that.
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
63406b669e74d9ff38a45f362ceac816a7dad668 18-Oct-2016 Dave Airlie <airlied@redhat.com> radv: fix fmask ptr issue

We were using the wrong descriptor in the fmask picking code.
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
b0e11a153c4b8cd9bf29bdb8e26a776de241a5b4 10-Oct-2016 Dave Airlie <airlied@redhat.com> radv: start using defines for the user sgpr offsets

This adds some comments and adds defines for the user sgprs,
so that we can move them around easier later and not have
to change/revalidate every one of these.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
5c66d46d6ace0603227e4b919b132416444949e7 13-Oct-2016 Tom Stellard <thomas.stellard@amd.com> radv: Use new image load/store intrinsic signatures v2

These were changed in LLVM r284024.

v2:
- Only use float types for vdata of llvm.amdgcn.image.store. LLVM doesn't
support integer types for this intrinsic.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
30e63fb0e422228cefb44dc4c28e0f282bdbb34c 13-Oct-2016 Tom Stellard <thomas.stellard@amd.com> radv: Fix incorrect comment

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c
f4e499ec79147f4172f3669ae9dafd941aaeeb65 07-Oct-2016 Dave Airlie <airlied@redhat.com> radv: add initial non-conformant radv vulkan driver

This squashes all the radv development up until now into
one for merging.

History can be found:
https://github.com/airlied/mesa/tree/semi-interesting

This requires llvm 3.9 and is in no way considered
a conformant vulkan implementation. It can run a number
of vulkan applications, and supports all GPUs using
the amdgpu kernel driver.

Thanks to Intel for providing anv and spirv->nir,
and Emil Velikov for reviewing build integration.

Parts of this are:
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Acked-by: Edward O'Callaghan <funfunctor@folklore1984.net>

Authors: Bas Nieuwenhuizen and Dave Airlie
Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/amd/common/ac_nir_to_llvm.c