Marek Olšák
a140aeb619
ac: add ac_build_fmin/fmax helpers
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2018-01-06 09:51:43 +01:00
Samuel Pitoiset
ec63ab39be
radv: enable denorms for 64-bit and 16-bit floats
...
Similar to RadeonSI.
This fixes:
dEQP-VK.image.texel_view_compatible.graphic.basic.attachment_read.bc*r16g16b16a16_sfloat
dEQP-VK.image.extended_usage_bit.attachment_write.r16_sfloat
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-01-05 09:51:33 +01:00
Samuel Pitoiset
7643c71527
amd/common: correctly detect if we need ring buffers
...
When allocate_user_sgprs() was called, ctx->stage was actually
unset and 0 is for the vertex shader. This doesn't change
anything for now because of the spill support thing.
Though, the number of user SGPRs has to be fixed for merged
shaders on GFX9. It was broken before anyway.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-01-05 09:49:51 +01:00
Samuel Pitoiset
50cfad0298
amd/common: use ac_image_load when lod is zero
...
This might decrease VGPR spilling, because we no longer
have to use v4i32 for 2D fetches when level == 0. We now
use v2i32 for those cases.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-05 09:49:45 +01:00
Timothy Arceri
4a0c24f2dd
ac: rework ac_llvm_extract_elem()
...
Simplifies the logic a little and asserts index is 0.
Suggested-by: Nicolai Hähnle <nhaehnle@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-05 12:20:38 +11:00
Timothy Arceri
14adf7853a
ac/radeonsi: add load_tess_coord() to the abi
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-05 11:58:55 +11:00
Timothy Arceri
9e1a3caf32
ac/radeonsi: add tcs_rel_ids to the abi
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-05 11:58:55 +11:00
Timothy Arceri
f93740efc1
ac: add {tcs,tes}_patch_id to the abi
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-05 11:58:55 +11:00
Timothy Arceri
b99ebaa4fd
ac: move some helpers to ac_llvm_build.c
...
We will call these from the radeonsi NIR backend.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-05 11:58:55 +11:00
Timothy Arceri
2deb822075
ac: add store_tcs_outputs() to the abi
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-05 11:58:55 +11:00
Timothy Arceri
b104e7e172
ac: call load_tcs_input() via the abi
...
This also enables some code sharing with tes.
V2: drop type param and just use ctx->i32
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-05 11:58:55 +11:00
Timothy Arceri
b09a3196e0
ac: add load_tes_inputs() to the abi
...
V2: drop type param and just use ctx->i32
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-05 11:58:55 +11:00
Samuel Pitoiset
a4d2782664
amd/common: scan if gl_PrimitiveID is used before translating to LLVM
...
It makes more sense to move all scan stuff in the same place.
Also, we don't really need to duplicate the uses_primid field
for each stages.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-04 18:43:09 +01:00
Samuel Pitoiset
3b2cb2f99a
amd/common: scan if gl_InvocationID is used
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-04 18:43:07 +01:00
Bas Nieuwenhuizen
79724c89f8
ac: rename has_sync_file to has_fence_to_handle.
...
sync_files are in linux since 4.7, while the amdgpu fence_to_handle
ioctl is only in 4.15.
In particular we don't need it for sync_file in radv, because
everything happens via syncobjs, which got support earlier than
fence_to_handle.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2018-01-04 01:12:09 +01:00
Bas Nieuwenhuizen
c99426ea83
ac/nir: Handle loading data from compact arrays.
...
Fixes: f4e499ec79 "radv: add initial non-conformant radv vulkan driver"
Reviewed-by: Dave Airlie <airlied@redhat.com >
2018-01-04 00:14:23 +01:00
Marek Olšák
4f19cc82f9
ac: rename has_syncobj_wait -> has_syncobj_wait_for_submit
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-01-04 00:07:45 +01:00
Samuel Pitoiset
3260a96c17
amd/common: rework set_userdata_location() and rename to set_loc()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:25:17 +01:00
Samuel Pitoiset
4221a816e2
amd/common: rename set_userdata_location_shader() to set_loc_shader()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:25:15 +01:00
Samuel Pitoiset
5081fd398e
amd/common: replace set_userdata_location_indirect() by set_loc_desc()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:25:13 +01:00
Samuel Pitoiset
f8202ef683
amd/common: rename radv_define_vs_user_sgprs_phase2()
...
... to set_vs_specific_input_locs().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:25:11 +01:00
Samuel Pitoiset
9d5a1787ee
amd/common: rename radv_define_common_user_sgprs_phase2()
...
... to set_global_input_locs().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:25:08 +01:00
Samuel Pitoiset
9a2393a510
amd/common: rename add_user_sgpr_array_argument() to add_array_arg()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:25:06 +01:00
Samuel Pitoiset
b6217bdbee
amd/common: replace add_sgpr_argument() by add_arg()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:25:04 +01:00
Samuel Pitoiset
32bbc9eb0f
amd/common: replace add_user_sgpr_argument() by add_arg()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:25:02 +01:00
Samuel Pitoiset
e946b5360d
amd/common: replace add_vgpr_argument() by add_arg()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:24:59 +01:00
Samuel Pitoiset
f1242a8976
amd/common: add new add_arg() helper for SGPRs/VGPRs arguments
...
The idea is to clean up the add arguments logic.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:24:57 +01:00
Samuel Pitoiset
bedfa06eaf
amd/common: rename radv_define_common_user_sgprs_phase1()
...
... to declare_global_input_sgprs().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:24:55 +01:00
Samuel Pitoiset
0f58f67abe
amd/common: rename radv_define_vs_user_sgprs_phase1()
...
... to declare_vs_specific_inputs_sgprs().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:24:53 +01:00
Samuel Pitoiset
5c91c1614c
amd/common: do not try to declare input VS SGPRs for GS
...
It's a no-op anyway but it looked strange to me, remove it.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:24:51 +01:00
Samuel Pitoiset
fc35a071b6
amd/common: add declare_vs_input_vgprs() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:24:49 +01:00
Samuel Pitoiset
3015668cad
amd/common: add declare_tes_input_vgprs() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:24:47 +01:00
Samuel Pitoiset
62942aa8c6
amd/common: remove unnecessary num_user_sgprs_used
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:24:46 +01:00
Samuel Pitoiset
6edf1fcdf5
amd/common: remove unnecessary user_sgpr_count
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-27 10:24:44 +01:00
Dave Airlie
cf363e4405
amd/common/radv/radeonsi: use register defines for dcc block sizes.
...
These are just taken from amdvlk, we probably knew these already,
but may as well port them now.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-12-27 11:10:35 +10:00
Samuel Pitoiset
38f9b87af2
amd/common: add ac_export_mrt_z() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-22 10:38:49 +01:00
Samuel Pitoiset
03ef264146
amd/common: pass the family to ac_llvm_context_init()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-22 10:38:44 +01:00
Samuel Pitoiset
4237c3d645
radv: properly load unused gl_LocalInvocationID/gl_WorkGroupID components
...
F1 2017 looks good now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-19 21:26:25 +01:00
Samuel Pitoiset
0c4a30eb51
radv: do not add extra SGPR when push constants are not used
...
This is not because the vertex stage needs some push constants
that other stages need them too. This should reduce the number
of loaded SGPRs in some situations.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-19 21:22:18 +01:00
Samuel Pitoiset
39097282f7
radv: change the needs_push_constants logic
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-19 21:22:16 +01:00
Samuel Pitoiset
1cecaa9174
radv: remove one useless check in ac_nir_shader_info_pass()
...
pipeline->layout can't be NULL now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-19 21:22:12 +01:00
Dave Airlie
dd517ad96d
ac/nir: fix lds store for patch outputs.
...
This wasn't calculating the correct value, this along with
a nir patch fixes a regression in:
dEQP-VK.tessellation.shader_input_output.barrier
Fixes: 043d14db30 (ac/nir: don't write tcs outputs to LDS that aren't read back.)
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-12-19 06:44:24 +10:00
Samuel Pitoiset
79b34d0832
amd/common: add ac_vgt_gs_mode() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-18 11:50:50 +01:00
Samuel Pitoiset
55f8431c76
amd/common: add ac_get_cb_shader_mask() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-18 11:50:48 +01:00
Bas Nieuwenhuizen
b308bb8773
amd/common: Add detection of the syncobj wait/signal/reset ioctls.
...
First amdgpu bump after inclusion was 20 (which was done for local BOs).
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-12-18 09:31:06 +01:00
Samuel Pitoiset
225b198802
amd/common: add ac_build_waitcnt()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-14 22:24:44 +01:00
Samuel Pitoiset
24601810e9
amd/common: more use of i32_1
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-14 22:24:42 +01:00
Samuel Pitoiset
ec4e566560
amd/common: more use of i32_0
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-14 22:24:41 +01:00
Samuel Pitoiset
d43e72fd8c
radeonsi: make use of ac_build_fdiv()
...
And move the comment to amd/common.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-14 22:24:38 +01:00
Samuel Pitoiset
88522e2bcd
radv: export SampleMask from pixel shaders at full rate
...
Use 16_ABGR instead of 32_ABGR if Z isn't written.
Ported from RadeonSI.
No CTS regressions on Polaris.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-12-14 22:23:28 +01:00