Age | Commit message (Collapse) | Author | Files | Lines |
|
The array will be smaller or of same size and kept into memory so let's resize it.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
|
|
This will avoid an extra roundtrip on startup time in turnip.
Signed-off-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1314>
|
|
Pull in HIGHEST_BANK_BIT param.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1314>
|
|
Bail out if the iov is too tiny for the requested texture.
Closes: https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/530
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1339>
|
|
Make sure to never return out-of-range values.
Closes: https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/529
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1338>
|
|
https://gitlab.freedesktop.org/mesa/mesa/-/compare/33b77ec774a10f052a2814d9ff3668cc0aa13083...8368a972943d5265b22eab86aa17c9a3cfe3406b
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1329>
|
|
The virgl_fence_set_fd_locked() doesn't return correct error code when
dup(fd) fails. In a error condition function returns the original fd
instead of the negative errno, which is then printed out into the log
and confuses the reader. Fix the returned value for the dup() failure.
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1335>
|
|
Leaks:
10,016 (16 direct, 10,000 indirect) bytes in 1 blocks are definitely lost
at 0x483E814: malloc (vg_replace_malloc.c:431)
by 0x11B56C: testvirgl_create_backed_simple_2d_res (testvirgl.c:206)
by 0x118033: virgl_test_encode_sampler_view_fail_layers_fn (test_virgl_cmd.c:1331)
by 0x495A6D9: srunner_run_tagged (in /usr/lib64/libcheck.so.0.15.2)
by 0x11AE94: main (test_virgl_cmd.c:1947)
10,016 (16 direct, 10,000 indirect) bytes in 1 blocks are definitely lost
at 0x483E814: malloc (vg_replace_malloc.c:431)
by 0x11B56C: testvirgl_create_backed_simple_2d_res (testvirgl.c:206)
by 0x1180EB: virgl_test_encode_sampler_view_fail_layers_fn (test_virgl_cmd.c:1335)
by 0x495A6D9: srunner_run_tagged (in /usr/lib64/libcheck.so.0.15.2)
by 0x11AE94: main (test_virgl_cmd.c:1947)
66 (16 direct, 50 indirect) bytes in 1 blocks are definitely lost in loss
at 0x483E814: malloc (vg_replace_malloc.c:431)
by 0x11B914: testvirgl_create_backed_simple_buffer (testvirgl.c:271)
by 0x1185E0: virgl_test_encode_sampler_view_texture_buffer_fn (test_virgl_cmd.c:1382)
by 0x495A6D9: srunner_run_tagged (in /usr/lib64/libcheck.so.0.15.2)
by 0x11AE94: main (test_virgl_cmd.c:1947)
10,016 (16 direct, 10,000 indirect) bytes in 1 blocks are definitely lost
at 0x483E814: malloc (vg_replace_malloc.c:431)
by 0x11B593: testvirgl_create_backed_simple_2d_res (testvirgl.c:206)
by 0x1177CF: virgl_test_encode_sampler_view_fn (test_virgl_cmd.c:1267)
by 0x495A6D9: srunner_run_tagged (in /usr/lib64/libcheck.so.0.15.2)
by 0x11AEBB: main (test_virgl_cmd.c:1952)
10,016 (16 direct, 10,000 indirect) bytes in 1 blocks are definitely lost
at 0x483E814: malloc (vg_replace_malloc.c:431)
by 0x11B593: testvirgl_create_backed_simple_2d_res (testvirgl.c:206)
by 0x117887: virgl_test_encode_sampler_view_fn (test_virgl_cmd.c:1271)
by 0x495A6D9: srunner_run_tagged (in /usr/lib64/libcheck.so.0.15.2)
by 0x11AEBB: main (test_virgl_cmd.c:1952)
Related: https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/177
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1336>
|
|
Otherwise this leads to a failure when running test_virgl_cmd with
valgrind
Fixes among others:
Conditional jump or move depends on uninitialised value(s)
at 0x48D5E74: util_fast_urem32 (fast_urem_by_const.h:71)
by 0x48D8A19: hash_table_search (hash_table.c:315)
by 0x48D8B33: _mesa_hash_table_search (hash_table.c:348)
by 0x48C46CB: util_hash_table_get (u_hash_table.c:127)
by 0x48C20DF: vrend_object_lookup (vrend_object.c:122)
by 0x487590C: vrend_set_framebuffer_state (vrend_renderer.c:3154)
by 0x486849F: vrend_decode_set_framebuffer_state (vrend_decode.c:172)
by 0x486CD53: vrend_decode_ctx_submit_cmd (vrend_decode.c:2057)
by 0x48640FA: virgl_renderer_submit_cmd (virglrenderer.c:299)
by 0x11B457: testvirgl_ctx_send_cmdbuf (testvirgl.c:183)
by 0x1140D3: virgl_test_bind_images_shader (test_virgl_cmd.c:527)
by 0x114256: virgl_test_bind_images_shader_fail_layers_fn (test_virgl_cmd.c:546)
Uninitialised value was created by a stack allocation
at 0x113ECD: virgl_test_bind_images_shader (test_virgl_cmd.c:496)
Related: https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/177
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1336>
|
|
Any call to glBindTexture() has the potential to overwrite a texture to
sampler (texture unit) binding that a shader relies on for proper
rendering.
Normally, this texture to sampler binding occurs directly
before each draw-call, but with the use of dirty state tracking to elide
unnecessary driver state updates, those pre-draw bindings may be
omitted, while unrelated glBindTexture() (such as for texture alloc at
the beginning of a subsequent frame) can clobber our fragile bindings
and cause mis-rendering.
Let's take care to make an almost-certainly unused texture unit
(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS-1) active at all times except
during the pre-draw texture to sampler bindings stage.
Testcase KHR-GL43.compute_shader.resource-subroutine begins passing now.
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Stash the uniform loc and set later, similarly to shadow_samp_*_locs.
Reduces likelihood of bugs caused by independent determination of
texture unit to use in glsl sampler uniform setting and texture binding.
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1333>
|
|
https://gitlab.freedesktop.org/mesa/mesa/-/commit/b90244776added6cfce76e68d37e142607e09040
extracted some common vdrm structs, for things that ended up identical
for intel and amd. This commit makes the same change on the
virglrenderer side.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1334>
|
|
This also has the side effect of fixing an obscure guest kernel error
path condition which could result in ->detach_resource() being called
without a call to ->attach_resource(), in which case we previously would
have leaked the GEM obj.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1334>
|
|
(and tests)
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1326>
|
|
Fixes: e69b3a3225c810e3707191c3c5a9dc20e7e83dc3 (origin/master, origin/HEAD)
vrend: Handle and report TEXTURE_MIRROR_CLAMP correctly
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1331>
|
|
This is yet another missed piece when tearing down the big ctx lock. We
have to protect the device level object list from device object creation
and destroy from multiple rings.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1332>
|
|
https://gitlab.freedesktop.org/mesa/mesa/-/compare/2e46dd062470b07d1c297275ab5a7a2040e1ab80...33b77ec774a10f052a2814d9ff3668cc0aa13083
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1321>
|
|
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1325>
|
|
Instead of testing individual APIs at configure time, it's often simpler
to rely on version macros.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1320>
|
|
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1324>
|
|
Adjust the masks to only hold the data that we are sure to actually use from Mesa.
The size of the elements have been adjusted, on the virgl encoding/decoding sides
while maintaining backward compatibility.
Removed also unused normalized_coords.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1323>
|
|
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1307>
|
|
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1322>
|
|
..to separate from the tracked object_mutex
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1319>
|
|
Fixes: e68b2c64 ("vkr: relax ctx lock for the rest of resource create")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1319>
|
|
https://gitlab.freedesktop.org/mesa/mesa/-/compare/0210b554d6840fef68abe87f72464e197a7eebc8...2e46dd062470b07d1c297275ab5a7a2040e1ab80
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1317>
|
|
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1313>
|
|
With that we can avoid someone calling a hash_table function directly
bypassing the handling of the two special entries for key 0 and 1.
v2:- Remove empty line (Ryan)
- don't remove call to destroy the hash table (Ryan)
v3: Add a data delete callback parameter to the hash_table_u64 function.
This fixes issues with the Ci and make a beforehand call to foreach
unnecessary.
v4: Make sure delete_function is called for all entries (Ryan)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1313>
|
|
hash_table_u64 has two values with key 0 and 1 that are not actually
handled in the hash table, but are handled directly. The two related
entries must also be handled with "*call_foreach", therefore add a
call hash_table_u64_call_foreach that takes care of this before calling
the "normal" hash_table_call_foreach.
Fixes memory leak:
Direct leak of 32 byte(s) in 1 object(s) allocated from:
#0 0x55aeace05db8 in __interceptor_calloc /var/tmp/portage/sys-libs/compiler-rt-sanitizers-16.0.6/work/compiler-rt/lib/asan/asan_malloc_linux.cpp:77:3
#1 0x7f2f0b36825f in virgl_fence_set_fd_locked /home/gerddie/Collabora/virglrenderer/build-clang/../src/virgl_fence.c:136:12
#2 0x7f2f0b3680b8 in virgl_fence_set_fd /home/gerddie/Collabora/virglrenderer/build-clang/../src/virgl_fence.c:166:10
#3 0x7f2f0b3e1398 in vrend_renderer_create_fence /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_renderer.c:11197:8
#4 0x7f2f0b3f5cf2 in vrend_renderer_create_ctx0_fence /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_renderer.c:13321:11
#5 0x7f2f0b35eafc in virgl_renderer_create_fence /home/gerddie/Collabora/virglrenderer/build-clang/../src/virglrenderer.c:415:14
#6 0x55aeace55a10 in vtest_create_implicit_fence /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_renderer.c:159:4
#7 0x55aeace5597c in vtest_submit_cmd /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_renderer.c:1279:4
#8 0x55aeace4b365 in vtest_client_dispatch_commands /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_server.c:757:10
#9 0x55aeace49c97 in vtest_server_dispatch_clients /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_server.c:526:13
#10 0x55aeace4824c in vtest_server_run /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_server.c:636:7
#11 0x55aeace471c4 in vtest_main /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_server.c:153:4
#12 0x55aeace47113 in main /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_main.c:28:12
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1313>
|
|
In geometry shaders emit_so_movs is called for each TGSI_OPCODE_EMIT, which
may result in allocating the name for the emitted TF output more than once.
Make sure we only allocate the name once.
Fixes memory leak:
Direct leak of 252 byte(s) in 36 object(s) allocated from:
#0 0x55f1147d0290 in strdup /var/tmp/portage/sys-libs/compiler-rt-sanitizers-16.0.6/work/compiler-rt/lib/asan/asan_interceptors.cpp:475:3
#1 0x7f7b0fedbb3c in emit_so_movs /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_shader.c:2384:29
#2 0x7f7b0fea0870 in iter_instruction /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_shader.c:5948:13
#3 0x7f7b1030cd26 in tgsi_iterate_shader /home/gerddie/Collabora/virglrenderer/build-clang/../src/gallium/auxiliary/tgsi/tgsi_iterate.c:54:18
#4 0x7f7b0fe91fa2 in vrend_convert_shader /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_shader.c:8168:11
#5 0x7f7b0fe73a2c in vrend_shader_create /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_renderer.c:4327:18
#6 0x7f7b0fe1b631 in vrend_shader_select /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_renderer.c:4377:11
#7 0x7f7b0fe622c0 in vrend_finish_shader /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_renderer.c:4420:11
#8 0x7f7b0fe00c0a in vrend_shader_assign_tgsi /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_renderer.c:4444:8
#9 0x7f7b0fdff9a0 in vrend_create_shader /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_renderer.c:4568:20
#10 0x7f7b0fde51e0 in vrend_decode_create_shader /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_decode.c:136:10
#11 0x7f7b0fdd7430 in vrend_decode_create_object /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_decode.c:865:13
#12 0x7f7b0fdd6e8d in vrend_decode_ctx_submit_cmd /home/gerddie/Collabora/virglrenderer/build-clang/../src/vrend_decode.c:2055:13
#13 0x7f7b0fdc7b45 in virgl_renderer_submit_cmd /home/gerddie/Collabora/virglrenderer/build-clang/../src/virglrenderer.c:299:11
#14 0x55f114837935 in vtest_submit_cmd /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_renderer.c:1273:10
#15 0x55f11482d365 in vtest_client_dispatch_commands /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_server.c:757:10
#16 0x55f11482bc97 in vtest_server_dispatch_clients /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_server.c:526:13
#17 0x55f11482a24c in vtest_server_run /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_server.c:636:7
#18 0x55f1148291c4 in vtest_main /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_server.c:153:4
#19 0x55f114829113 in main /home/gerddie/Collabora/virglrenderer/build-clang/../vtest/vtest_main.c:28:12
v2: remove no-op free call (Ryan)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1313>
|
|
Fixes regression in the calling and return semantics for two calls to
virgl_gbm_transfer.
Closes: #517
Fixes: ad8ca0aacd ("vrend: Always fallback to GL if a GBM transfer fails")
Signed-off-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1318>
|
|
Vtest protocol version 3 has been in use for 2 years, make it stable.
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1311>
|
|
All the virglrenderer protocol capsets are stable by today. Make them
stable in the code.
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1311>
|
|
Add new Meson build option that exposes unstable APIs in the pkgconfig
cflags, making them available in the system by default. This also allows
virglrenderer users determine whether unstable APIs are available in the
installed virglrenderer version. Crosvm will be the first user of the
new pkgconfig info, it will auto-enable unstable features based on
virglrenderer pkg configuration when crosvm itself is configured to use
external libvirglrenderer.
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Suggested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1311>
|
|
https://gitlab.freedesktop.org/mesa/mesa/-/compare/9ca9b67446246623c1e4fd15aa1ed659a3e1ede8...1188b218c61c8f33815e75bc8422cb80e3b468ec
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1308>
|
|
vrend_renderer_pipe_resource_create creates a resource that is then
usually claimed with a call vrend_get_blob_pipe. However, if not all
resources created like this are claimed then the memory used to allocate
these has to be freed when the context is destroyed to avoid a memory
leak.
Closes: https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/513
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1310>
|