Jonathan Gray
ebfb9e1817
aco: use UINT64_C on 64 bit constant arguments
...
avoids errors seen when building on OpenBSD/amd64
../src/amd/compiler/aco_instruction_selection.cpp:1677:62: error: ambiguous conversion for functional-style cast from 'unsigned long' to 'aco::Operand'
bld.vop3(aco_opcode::v_mul_f64, Definition(dst), Operand(0x3FF0000000000000lu), tmp);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
glibc uses unsigned long for uint64_t on LP64 archs and unsigned long long for
uint64_t on ILP32 archs. On OpenBSD unsigned long long is used for uint64_t
on all archs.
The Operand constructors are uint8_t uint16_t uint32_t uint64_t
use UINT64_C so lu or llu suffix will be used as needed.
Fixes: df645fa369 ("aco: implement VK_KHR_shader_float_controls")
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7944 >
2020-12-08 11:11:28 +00:00
Samuel Pitoiset
59b1578176
radv: disable alphaToOne feature
...
The feature was exposed but completely ignored by the driver. Other
AMD drivers don't expose it as well, probably because it's complicated
to implement alpha-to-coverage properly. Let's disable it.
Cc: mesa-stable.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7966 >
2020-12-08 10:42:27 +01:00
Mauro Rossi
2b1930a50a
android: radv: add libcutils shared dependency
...
Fixes the following building error:
FAILED: out/target/product/x86_64/obj/SHARED_LIBRARIES/vulkan.android-x86_intermediates/LINKED/vulkan.android-x86.so
...
ld.lld: error: undefined symbol: property_get
>>> referenced by os_misc.c:193 (external/mesa/src/util/os_misc.c:193)
>>> os_misc.o:(os_get_option) in archive out/target/product/x86_64/obj/STATIC_LIBRARIES/libmesa_util_intermediates/libmesa_util.a
Fixes: eeecc21d ("util: Add property_get() fallback for android")
Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7861 >
2020-12-07 23:54:25 +01:00
Samuel Pitoiset
ec3828add3
radv: fix clearing FMASK for layered MSAA images on GFX9+
...
If we always clear the whole FMASK buffer, layers can be corrupted.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3710
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7924 >
2020-12-07 16:19:22 +00:00
Samuel Pitoiset
35964e9387
ac/surface: initialize the FMASK slice size for GFX9+
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7924 >
2020-12-07 16:19:22 +00:00
Samuel Pitoiset
c0319e4505
radv: advertise VK_EXT_sample_locations on GFX10+
...
Only MSAA2x and MSAA4X sample locations can be used.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7850 >
2020-12-07 15:45:49 +00:00
Samuel Pitoiset
3adf8121a0
radv: enable using MSAA2x and MSAA4x sample locations on GFX10+
...
These failures are really weird but MSAA2x and MSAA4x work fine.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7850 >
2020-12-07 15:45:49 +00:00
Hans-Kristian Arntzen
86644b84b9
radv: Implement VK_VALVE_mutable_descriptor_type.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7967 >
2020-12-07 15:25:17 +00:00
Samuel Pitoiset
562dd79bfa
radv: fix using FS sample shading if the linker optimized inputs away
...
During NIR linking, constant varyings might be moved to the next
stage and the sample qualifier removed.
shader_info::uses_sample_shading remembers if the sample qualifier
was used before optimizations.
No fossils-db changes on Sienna Cichlid.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7892 >
2020-12-07 11:42:17 +00:00
Samuel Pitoiset
b24b3026cc
radv: use 32-bit predication for skipping FCE on GFX10.3+
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7897 >
2020-12-07 09:30:05 +00:00
Samuel Pitoiset
3494551d08
radv: set the predication boolean as 32-bit if necessary
...
CTS is missing tests.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7897 >
2020-12-07 09:30:05 +00:00
Samuel Pitoiset
fadcf13c8b
radv: fix exporting multiviews with NGG
...
If a subpass uses multiview but the fragment shader doesn't load it
we still have to export it.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7815 >
2020-12-07 08:06:43 +00:00
Samuel Pitoiset
5cacb56041
radv: mark GFX10.3 as a non-conformant Vulkan implementation
...
In theory, GFX10.3 is not considered to be a conformant Vulkan
implementation because we didn't submit a conformance submission
package.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7913 >
2020-12-07 08:26:47 +01:00
Rhys Perry
c553084bf9
aco: remove rollback code when making an instruction vop3
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:32 +00:00
Rhys Perry
349908587f
aco: move update_renames() out of get_reg()
...
This is necessary for the next commit, which will pass a temporary copy of
the register file to get_reg().
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
8794f0348a
aco: remove rollback code for blocked fixed definitions
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
6f7cb47ad8
aco: remove rollback code around parallelcopy creation
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
9177fe8356
aco: simplify get_reg_impl()
...
Instead of copying the reg file as a backup, copy it so that we can remove
the rollback/undo code.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
5c9d2ed78d
aco: use clear() helper instead of writing reg file directly
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
d671cf7f53
aco: repeat get_reg_create_vector() with increased register demand if fail
...
We don't need rollback/undo code here because get_reg_create_vector() now
creates a temporary copy of the register file.
Works around RA failure with a bunch of dEQP-VK.robustness.robustness2.*
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3566
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
ebd8ab1757
aco: remove rollback code in get_reg_create_vector()
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
ad26eae544
aco: don't fill killed operands in update_renames()
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
67860b99ce
aco: clear operands in update_renames()
...
In the future, they might not have already been cleared.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
7610630124
aco: coalesce constant copies
...
fossil-db (Navi):
Totals from 20108 (14.49% of 138791) affected shaders:
CodeSize: 117835376 -> 117830512 (-0.00%)
Instrs: 22813722 -> 22733245 (-0.35%)
Cycles: 1009135584 -> 1008543628 (-0.06%)
VMEM: 5401668 -> 5391247 (-0.19%)
SMEM: 1286824 -> 1283663 (-0.25%)
Copies: 1742154 -> 1661686 (-4.62%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:49 +00:00
Rhys Perry
f53d4e5f60
aco: use v_lshrrev_b64 for 64-bit VGPR copies on GFX10+
...
This isn't worth it on GFX9-, but the proprietary compiler uses it on
GFX10.
fossil-db (Navi):
Totals from 23825 (17.17% of 138791) affected shaders:
CodeSize: 130623632 -> 130623800 (+0.00%); split: -0.00%, +0.00%
Instrs: 25185559 -> 25108597 (-0.31%)
Cycles: 709864740 -> 708910860 (-0.13%)
VMEM: 7205343 -> 7168839 (-0.51%); split: +0.00%, -0.51%
SMEM: 1584946 -> 1575183 (-0.62%)
Copies: 2043134 -> 1966230 (-3.76%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Rhys Perry
8c02a8e2d2
aco: add get_const/is_constant_representable helpers
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Rhys Perry
b10de4c1d8
aco: allow 64-bit literals if they can be sign/zero-extended from 32-bit
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Rhys Perry
24ee0f55f2
aco: remove sign-extension in constantValue64()
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Rhys Perry
8451911156
aco: test self-intersecting copies when src=higher
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Rhys Perry
2c40846ab6
aco: don't assume src=lower when splitting self-intersecting copies
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 09c584caeb ("aco: split self-intersecting copies instead of swapping")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Samuel Pitoiset
055aff2613
radv: reduce maxTransformFeedbackBufferDataSize to 512
...
DRAW_OPAQUE_VERTEX_STRIDE only has 9 bits, so the register can
represent 511 bytes at most.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7900 >
2020-12-04 07:52:23 +01:00
Vinson Lee
cf7bf7fade
amd/addrlib: Initialize Lib members in constructors.
...
Fix defects reported by Coverity Scan.
uninit_member: Non-static class member m_maxBaseAlign is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member m_maxMetaBaseAlign is not initialized in this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7768 >
2020-12-03 23:02:17 +00:00
Bas Nieuwenhuizen
9a3aaffeb8
radv: Don't invalidate the SCACHE for image barriers.
...
Even ACO never uses the constant cache for images.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7875 >
2020-12-03 22:21:06 +00:00
James Park
0546ceba16
radv: Use portable ffs and util_bitcount macros
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
3ff1eccce6
radv: Replace pthread thread with thrd_t
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
63dc2a53af
radv: Replace pthread mutex with mtx_t
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
aefaceab09
radv: Use unsigned with u_bit_scan for MSVC
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
60c362c490
radv: Create shader cache if ENABLE_SHADER_CACHE
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
bed6e462e1
radv: Use standard __VA_ARGS__ macro
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
09fb370068
radv: Fix function parameter types
...
Avoids unnecessary type aliasing.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
6ec0953e22
radv: Fix leak in radv_amdgpu_winsys_destroy()
...
Fixes: fa97061a82 ("radv/winsys: Add binary syncobj ABI changes for timeline semaphores.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
314bcb3937
radv: Fix callback signatures
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
be42e9a6d1
radv: Update radv_assert for MSVC
...
MSVC hates parentheses in radv_assert, so replace with do/while(0).
Also switch nonstandard DEBUG with standard NDEBUG, which Aco uses.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
02481e1203
radv: Ignore radv_printflike on Windows
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
7f7586704c
radv: Don't return value in void function
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
3fe62252e4
radv: Use os_localtime instead of localtime_r
...
Cross-platform abstraction that works with MSVC.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
fe67fe688a
radv: Wrap pragmas with __GNUC__ to fix MSVC
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
c4a516ca70
radv: Replace VLAs with alloca
...
MSVC does not support VLAs.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
2749258368
radv: Update build defines for Windows
...
Add VK_USE_PLATFORM_WIN32_KHR.
Use VK_NO_PROTOTYPES to deal with __declspec(dllexport) mismatch.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00
James Park
0c70842232
radv: Exclude amdgpu driver files for Windows
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7866 >
2020-12-02 11:27:01 +00:00