Samuel Pitoiset
1ac741d690
ac/nir: move ac_declare_lds_as_pointer() outside of the switch
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-20 10:44:59 +01:00
Samuel Pitoiset
b5d111ae76
radv: allow to force family using RADV_FORCE_FAMILY
...
Useful for pipeline-db.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2018-02-20 10:44:47 +01:00
Samuel Pitoiset
549c7f3724
radv: compact varyings after removing unused ones
...
It makes no sense to compact before, and the description of
nir_compact_varyings() confirms that.
Polaris10:
Totals from affected shaders:
SGPRS: 108528 -> 108128 (-0.37 %)
VGPRS: 74548 -> 74500 (-0.06 %)
Spilled SGPRs: 844 -> 814 (-3.55 %)
Code Size: 3007328 -> 2992932 (-0.48 %) bytes
Max Waves: 16019 -> 16009 (-0.06 %)
Vega10:
Totals from affected shaders:
SGPRS: 106088 -> 106232 (0.14 %)
VGPRS: 74652 -> 74700 (0.06 %)
Spilled SGPRs: 692 -> 658 (-4.91 %)
Code Size: 2967708 -> 2953028 (-0.49 %) bytes
Max Waves: 18178 -> 18162 (-0.09 %)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
2018-02-19 12:19:17 +01:00
Marek Olšák
931ec80eeb
radeonsi: implement 32-bit pointers in user data SGPRs (v2)
...
User SGPRs changes:
VS: 14 -> 9
TCS: 14 -> 10
TES: 10 -> 6
GS: 8 -> 4
GSCOPY: 2 -> 1
PS: 9 -> 5
Merged VS-TCS: 24 -> 16
Merged VS-GS: 18 -> 11
Merged TES-GS: 18 -> 11
SGPRS: 2170102 -> 2158430 (-0.54 %)
VGPRS: 1645656 -> 1641516 (-0.25 %)
Spilled SGPRs: 9078 -> 8810 (-2.95 %)
Spilled VGPRs: 130 -> 114 (-12.31 %)
Scratch size: 1508 -> 1492 (-1.06 %) dwords per thread
Code Size: 52094872 -> 52692540 (1.15 %) bytes
Max Waves: 371848 -> 372723 (0.24 %)
v2: - the shader cache needs to take address32_hi into account
- set amdgpu-32bit-address-high-bits
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com > (v1)
2018-02-17 04:52:17 +01:00
Marek Olšák
0977b7f7b3
ac: query high bits of 32-bit address space
2018-02-17 04:51:58 +01:00
Bas Nieuwenhuizen
05d84ed68a
radv: Always lower indirect derefs after nir_lower_global_vars_to_local.
...
Otherwise new local variables can cause hangs on vega.
CC: <mesa-stable@lists.freedesktop.org >
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105098
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
2018-02-15 23:45:59 +01:00
Samuel Pitoiset
579b33c1fd
ac/nir: do not reserve user SGPRs for unused descriptor sets
...
In theory this might lead to corruption if we bind a descriptor
set which is unused, because LLVM is smart and it can re-use
unused user SGPRs. In practice, this doesn't seem to fix
anything.
As a side effect, this will reduce the number of emitted
SH_REG packets.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-15 14:53:30 +01:00
Samuel Pitoiset
309854148c
ac/shader: fix gathering of desc_set_used_mask
...
This was quite wrong.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-15 14:53:30 +01:00
Samuel Pitoiset
61a4fc3ecc
ac/shader: be a little smarter when scanning vertex buffers
...
Although meta shaders don't use any vertex buffers, there is no
behaviour change but I think it's better to do this. Though,
this saves two user SGPRs for push constants inlining or
something else.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-15 14:53:30 +01:00
Timothy Arceri
9740c8a8aa
ac: implement nir_intrinsic_image_samples
...
Fixes cts test:
KHR-GL45.shader_texture_image_samples_tests.image_functional_test
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-02-15 09:02:41 +11:00
Timothy Arceri
3ad52501dc
ac/nir_to_llvm: fix image size for arrays of arrays
...
Fixes cts test:
KHR-GL44.shader_image_size.advanced-changeSize
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-02-15 09:02:41 +11:00
Samuel Pitoiset
ad4b58ea70
ac/nir: rename nir_to_llvm_context to radv_shader_context
...
There is still more to do in that area, but it's a good start.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-14 11:53:16 +01:00
Samuel Pitoiset
141db61509
ac: remove nir_to_llvm_context from ac_nir_translate()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-14 11:53:14 +01:00
Samuel Pitoiset
a541117ff4
ac/nir: remove nir_to_llvm_context::nir link
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-14 11:53:12 +01:00
Samuel Pitoiset
e9f0205ca2
ac: move the outputs array to the ABI
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-14 11:53:10 +01:00
Samuel Pitoiset
07e4268f36
ac/shader: scan force_persample
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-14 11:53:08 +01:00
Bas Nieuwenhuizen
7461bd5b8f
ac: Use the renumbered const address space for LLVM 7.
...
The LLVM AMDGPU backend decided to renumber the constant address
space ....
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2018-02-14 01:05:03 +01:00
Timothy Arceri
10457712ed
ac/nir: add nir_intrinsic_{load,store}_shared support
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2018-02-13 14:43:05 +11:00
Timothy Arceri
c787cbfa33
ac/nir_to_llvm: add support for nir_intrinsic_shared_atomic_*
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2018-02-13 14:43:05 +11:00
Eric Anholt
1aed66dc1e
radv: Fix compiler warning about uninitialized 'set'
...
The compiler doesn't figure out that we only get result == VK_SUCCESS if
set got initialized.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 20:48:47 +00:00
Eric Anholt
091bff8317
ac/nir: Fix compiler warning about uninitialized dw_addr.
...
Even switching the def's condition to be the same chip revision check as
the use, the compiler doesn't figure it out. Just NULL-init it.
Fixes: ec53e52742 ("ac/nir: Add ES output to LDS for GFX9.")
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 20:48:29 +00:00
Samuel Pitoiset
f4e85ba93f
ac/nir: remove backlink to nir_to_llvm_context
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:39 +01:00
Samuel Pitoiset
be5f6eb13e
ac/nir: remove nir_to_llvm_context::module
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:36 +01:00
Samuel Pitoiset
90a815ddeb
ac/nir: remove nir_to_llvm_context::builder
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:34 +01:00
Samuel Pitoiset
759acfa180
ac/nir: drop nir_to_llvm_context from glsl_to_llvm_type()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:31 +01:00
Samuel Pitoiset
e7373a6498
ac/nir: drop nir_to_llvm_context from visit_var_atomic()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:29 +01:00
Samuel Pitoiset
485346b05a
ac/nir: drop nir_to_llvm_context from visit_vulkan_resource_reindex()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:27 +01:00
Samuel Pitoiset
cd6dfacda9
ac/nir: drop nir_to_llvm_context from visit_load_push_constant()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:25 +01:00
Samuel Pitoiset
5c9e398c83
ac/nir: drop nir_to_llvm_context from cast_ptr()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:23 +01:00
Samuel Pitoiset
5ef5944848
ac/nir: drop nir_to_llvm_context from visit_load_local_invocation_index()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:21 +01:00
Samuel Pitoiset
da8b0b8264
ac/nir: drop nir_to_llvm_context from emit_f2f16()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:19 +01:00
Samuel Pitoiset
e32f374944
ac: remove unused parameters in abi::load_tess_coord()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:17 +01:00
Samuel Pitoiset
1e69db003d
ac/nir: remove useless bitcast in load_tess_coord()
...
nir_intrinsic_load_tess_coord always returns a v3i32.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:15 +01:00
Samuel Pitoiset
ed179fbdf3
ac: add load_resource() to the ABI
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:13 +01:00
Samuel Pitoiset
ecf229706f
ac: add load_sample_mask_in() to the ABI
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:11 +01:00
Samuel Pitoiset
0f48eeea05
ac: move view_index to the ABI
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:09 +01:00
Samuel Pitoiset
0efbede949
ac: move push_constants to the ABI
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:07 +01:00
Samuel Pitoiset
460d3ce726
ac: move tg_size to the ABI
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:04 +01:00
Samuel Pitoiset
054c92190c
ac/nir: remove unused nir_to_llvm_context:{defs,phis}
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-12 11:54:02 +01:00
Timothy Arceri
ef8082baf8
ac: convert nir_op_f2f32 src to a float
...
Fixes the following piglit test:
./bin/arb_vertex_attrib_64bit-check-explicit-location -auto -fbo
Where we would end up with the nir such as:
vec1 64 ssa_11 = pack_64_2x32_split ssa_9, ssa_10
vec1 32 ssa_12 = f2f32 ssa_2
And our pack_64_2x32_split nir to llvm code always produces
a 64bit integer as output.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2018-02-10 10:46:28 +11:00
Timothy Arceri
1b1e5f8edf
ac: fix some 64bit unpack asserts
...
Previously the asserts did not take swizzles into account.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2018-02-10 10:46:28 +11:00
Samuel Pitoiset
3a2bb4db23
ac/nir: compute correct number of user SGPRs on GFX9
...
For merged shaders.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2018-02-09 10:16:04 +01:00
Timothy Arceri
c77078c942
ac: pass struct ac_llvm_context to emit_membar()
...
Fixes segfault in piglit test:
./bin/arb_shader_image_load_store-shader-mem-barrier --quick -auto -fbo
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-02-09 12:51:27 +11:00
Timothy Arceri
12a2350e6d
ac: add 64bit support to ac_find_lsb()
...
v2: use LLVMBuildTrunc()
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-02-09 09:42:59 +11:00
Timothy Arceri
a9f6b392c7
ac: move get_elem_bits() to ac_llvm_build.c
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-02-09 09:42:59 +11:00
Timothy Arceri
19f9839f0b
ac: add 64bit bitCount support
...
v2: use LLVMBuildTrunc()
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-02-09 09:42:59 +11:00
Samuel Pitoiset
bb750d265c
ac/nir: clean up handle_fs_outputs_post()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-08 22:14:33 +01:00
Samuel Pitoiset
528bc14fa5
ac/nir: add radv_load_output() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-08 22:14:30 +01:00
Samuel Pitoiset
834d9845ca
ac/shader: scan info about output PS declarations
...
NIR->LLVM should only be a translation pass, and all scan stuff
should be done before.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-08 22:14:27 +01:00
Samuel Pitoiset
a8e04e91de
ac/nir: add radv_export_param() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-02-08 22:14:26 +01:00