Leandro Ribeiro
a25d4dd276
loader: add function to get render node from dev_t
...
Add function loader_get_render_node() to help us to get a render node
from dev_t. If the device does not expose a render node, this new
function returns NULL.
As this function uses drmGetDeviceFromDevId(), we bump libdrm minimal
version to 2.4.109.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11248 >
2021-11-26 16:06:09 +00:00
Leandro Ribeiro
cd39180cfa
egl/wayland: remove unused constant EGL_DRI2_NUM_FORMATS
...
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11248 >
2021-11-26 16:06:09 +00:00
Leandro Ribeiro
aa6c900625
egl/wayland: move formats and modifiers to a separate struct
...
This will allow us to remove EGL_DRI2_NUM_FORMATS (as explained in
"egl/wayland: remove unused constant EGL_DRI2_NUM_FORMATS") and it will
also help to add the dma-buf feedback support. Both changes happen in
the next commits.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11248 >
2021-11-26 16:06:09 +00:00
Leandro Ribeiro
6c37784400
egl/wayland: do not try to access memory if allocation failed
...
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11248 >
2021-11-26 16:06:09 +00:00
Leandro Ribeiro
af1ee8e010
egl/wayland: deprecate drm_handle_format() and drm_handle_capabilities()
...
Most Wayland compositors have already implemented the dma-buf protocol
extension. So we can stop relying on the wl_drm events and start to
depend only on the dma-buf interface to receive format/modifier pairs
and create wl_buffer's. So we can deprecate drm_handle_format() and
drm_handle_capabilities().
Note that we still use the wl_drm interface to find out the DRM device
that the compositor is using, so we can't deprecate it fully for now. In
the future (when the dma-buf feedback interface is added to the dma-buf
protocol extension [1] and most compositors incorporate it) we may be
able to fully deprecate wl_drm.
[1] https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/8
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11248 >
2021-11-26 16:06:09 +00:00
Leandro Ribeiro
3022ad7e15
egl/wayland: replace EGL_DRI2_MAX_FORMATS by EGL_DRI2_NUM_FORMATS
...
Currently we have a weird design. We have a hardcoded array (named
dri2_wl_visuals) with all the formats that we support, which are 9.
And we also have EGL_DRI2_MAX_FORMATS, which is a constant set to 10. In
patches in which people added new formats to dri2_wl_visuals, this
constant had its value increased. This is confusing, as its name gives
the idea that we can't support more formats.
This constant is only used to define the bitset size of
dri2_egl_display::formats. And it should work just fine if we created
this bitset with the number of formats supported.
To make things clearer, replace EGL_DRI2_MAX_FORMATS by
EGL_DRI2_NUM_FORMATS, which must be equal to ARRAY_SIZE(dri2_wl_visuals)
(i.e. the number of supported formats).
In the next commits we get rid of this constant completely, as it is
prone to errors.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11248 >
2021-11-26 16:06:09 +00:00
Scott Anderson
42a0e5caa9
egl/wayland: Remove unused wayland enum
...
Signed-off-by: Scott Anderson <scott@anderso.nz >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11248 >
2021-11-26 16:06:09 +00:00
Leandro Ribeiro
c53733b004
egl: remove unnecessary spaces after types
...
If we want to add a variable with a type name that is too long, we have
to realign all the variables within these structs. The other option is
to ignore and don't realign, and then we end up with a very ugly code.
So get rid of these unnecessary spaces, as they don't bring anything
useful. Instead, they are annoying.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11248 >
2021-11-26 16:06:09 +00:00
Daniel Stone
be1acac84c
ci: Upgrade to libdrm 2.4.109
...
Required for being able to use drmGetDeviceFromDevId in the loader.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11248 >
2021-11-26 16:06:09 +00:00
Daniel Stone
a2fd507973
ci: Consistently build Wayland and protocols
...
Rather than relying on distro packages, build libwayland and
wayland-protocols from known versions everywhere we need it.
The only place we do not do so but rely on distro packages is the LAVA
rootfs, for which it does not matter right now since the version is
sufficiently new, but this could/should be cleaned up later.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11248 >
2021-11-26 16:06:09 +00:00
Daniel Stone
9bab991be0
ci: Use common build script for libwayland
...
Rather than open-coding libwayland install for each container, create a
common build script like the rest, using both git and meson like the
rest.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11248 >
2021-11-26 16:06:09 +00:00
Samuel Pitoiset
db3d76c42d
radv: advertise VK_KHR_synchronization2
...
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/13549 >
2021-11-26 13:41:23 +00:00
Samuel Pitoiset
52b4185012
radv: switch the remaining stages/access to VK_PIPELINE_STAGE_2/VK_ACCESS_2
...
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/13549 >
2021-11-26 13:41:23 +00:00
Samuel Pitoiset
ad3cd581f4
radv: add support for VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR
...
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/13549 >
2021-11-26 13:41:23 +00:00
Samuel Pitoiset
936ac58b77
radv: add support for new pipeline stages and access masks
...
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/13549 >
2021-11-26 13:41:22 +00:00
Samuel Pitoiset
3f29ae2d31
radv: add support for creating device-only events
...
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/13549 >
2021-11-26 13:41:22 +00:00
Samuel Pitoiset
e99c66ad19
radv: add support for VkMemoryBarrier2KHR
...
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/13549 >
2021-11-26 13:41:22 +00:00
Samuel Pitoiset
3da7d10d9b
radv: implement vkQueueSubmit2KHR()
...
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/13549 >
2021-11-26 13:41:22 +00:00
Samuel Pitoiset
8df17163c7
radv: implement vkCmdWaitEvents2KHR()/vkCmdPipelineBarrier2KHR()
...
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/13549 >
2021-11-26 13:41:22 +00:00
Samuel Pitoiset
57575974fd
radv: implement vkCmdWriteBufferMarker2AMD()
...
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/13549 >
2021-11-26 13:41:22 +00:00
Samuel Pitoiset
cff81c863b
radv: implement vkCmd{Reset,Set}Event2KHR()
...
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/13549 >
2021-11-26 13:41:22 +00:00
Samuel Pitoiset
a0ac03676f
radv: implement vkCmdWriteTimestamp2KHR()
...
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/13549 >
2021-11-26 13:41:22 +00:00
Marek Olšák
1df7c0ce7e
radeonsi: print the shader stage for shader-db dumps
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13869 >
2021-11-26 11:58:27 +00:00
Marek Olšák
59926f25fa
radeonsi: print source_sha1 as part of shader dumps
...
It's not part of the shader key, but I don't know where else to put it.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13869 >
2021-11-26 11:58:27 +00:00
Marek Olšák
e54264c84f
nir: add shader_info::source_sha1, its initialization and printing
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13869 >
2021-11-26 11:58:27 +00:00
Marek Olšák
ba8075031a
util: add SHA1 printing and comparison functions
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13869 >
2021-11-26 11:58:27 +00:00
Marek Olšák
0b196b40a3
mesa: don't compute the same SHA1 twice in glShaderSource
...
We can just use original_sha1.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13869 >
2021-11-26 11:58:27 +00:00
Marek Olšák
67f01e02d9
mesa: add gl_linked_shader::linked_source_sha1
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13869 >
2021-11-26 11:58:27 +00:00
Marek Olšák
4364449677
mesa: add shader source SHA1s that are propagated up to glCompileShader
...
glCompileShader can use two different sources, so we need 2 different SHA1s
there. Successful compilation sets compiled_source_sha1.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13869 >
2021-11-26 11:58:27 +00:00
Marek Olšák
d473b31fe7
mesa: rename gl_shader::sha1 to disk_cache_sha1
...
there will be more sha1s
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13869 >
2021-11-26 11:58:27 +00:00
Marek Olšák
0bb580754c
mesa: remove SourceChecksum from shader structures
...
it will be replaced by sha1.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13869 >
2021-11-26 11:58:27 +00:00
Marek Olšák
cd86f1dc2b
radeonsi: rename si_get_shader_wave_size and make it non-inline
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13878 >
2021-11-26 11:35:05 +00:00
Marek Olšák
676d4ddcf8
radeonsi: centralize wave size computation in si_get_shader_wave_size
...
The big comment was not really true.
The other debug options are unused right now, but will be used again
in the future.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13878 >
2021-11-26 11:35:05 +00:00
Marek Olšák
b5665bd46c
radeonsi: don't use compute_wave_size directly
...
It will be removed.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13878 >
2021-11-26 11:35:05 +00:00
Marek Olšák
1ef027851d
radeonsi: propagate si_shader::wave_size to VGT_SHADER_STAGES
...
instead of hardcoding them
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13878 >
2021-11-26 11:35:05 +00:00
Marek Olšák
913e1b9138
radeonsi: clean up compute_wave_size use in si_compute_blit.c
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13878 >
2021-11-26 11:35:05 +00:00
Marek Olšák
8290cae2b7
radeonsi: don't use si_get_wave_size in si_get_ir_cache_key
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13878 >
2021-11-26 11:35:05 +00:00
Marek Olšák
d08b09cb7e
radeonsi: use si_shader::wave_size
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13878 >
2021-11-26 11:35:05 +00:00
Marek Olšák
bc57488936
radeonsi: add si_shader::wave_size because it will vary
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13878 >
2021-11-26 11:35:05 +00:00
Marek Olšák
41523773f5
radeonsi: add wave32 flag into prolog/epilog keys
...
It will vary between shaders.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13878 >
2021-11-26 11:35:05 +00:00
Marek Olšák
3b2a6e1b21
radeonsi: don't print uninitialized inlined_uniform_values
...
We don't set them and we don't read them if they are disabled, so don't
print them either. This silences valgrind warnings.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13878 >
2021-11-26 11:35:05 +00:00
Marek Olšák
94dd401287
driconf: enable glthread for Basemark GPU
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13947 >
2021-11-26 10:54:49 +00:00
Marek Olšák
5a970dbac3
driconf: enable glthread for Minecraft
...
+30% performance
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13947 >
2021-11-26 10:54:49 +00:00
Marek Olšák
9c4d92508d
driconf: enable glthread for all Unigine benchmarks
...
It helps.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13947 >
2021-11-26 10:54:49 +00:00
Samuel Pitoiset
add883bf9b
aco: fix right shift of exponent 32 detected by UBSAN
...
src/amd/compiler/aco_optimizer.cpp:1316:17: runtime error: shift
exponent 32 is too large for 32-bit type 'unsigned int'
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/13951 >
2021-11-25 16:15:30 +00:00
Samuel Pitoiset
d18720897f
radv: fix OOB access for inline push constants detected by UBSAN
...
src/amd/vulkan/radv_cmd_buffer.c:3232:75: runtime error: index 252 out
of bounds for type 'uint8_t [128]'
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/13951 >
2021-11-25 16:15:30 +00:00
Samuel Pitoiset
8e3fbe7cc8
ac/nir: fix left shift of 1 by 31 places detected by UBSAN
...
src/amd/common/ac_nir_lower_ngg.c:1135:62: runtime error: left shift
of 1 by 31 places cannot be represented in type 'int
src/amd/common/ac_nir_lower_ngg.c:622:20: runtime error: left shift
of 1 by 31 places cannot be represented in type 'int'
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/13951 >
2021-11-25 16:15:30 +00:00
Marius Hillenbrand
a46d155329
util/cpu_detect, gallium: use cpu_family CPU_S390X instead of separate flag
...
to also get rid of the additional function that I introduced before.
Fixes: 82b261417e ("util/cpu_detect: Add flag for IBM Z (s390x)")
Signed-off-by: Marius Hillenbrand <mhillen@linux.ibm.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13958 >
2021-11-25 12:57:20 +00:00
Danylo Piliaiev
a78c36ecc6
ir3/cp: Prevent setting an address on subgroup macros
...
These macros expand to a mov in an if statement which breaks address
assumption that instruction which produces address and consumes it
are in the same block.
Fixes test:
dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_intvertex
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13931 >
2021-11-25 12:18:48 +00:00
Marek Olšák
d14c09f7f6
mesa: add a more straightforward callback for replacing shaders
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13946 >
2021-11-25 10:39:30 +00:00