mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-08 02:00:21 +01:00
llvmpipe: Add get_{driver,device}_uuid implementations
Commit9da15aa3aa("llvmpipe: enable EXT_memory_object(_fd)") enabled the extension, but left this unimplemented. Leaving this unimplemented causes segfaults for anyone trying to retrieve the UUIDs, as the calling code in the state tracker does not check if the function is implemented. This affects e.g. current Wine versions. Set the UUID to all zeros. Although this slightly violates the vulkan specification (since 1.2.146), the UUIDs have to match the ones from lavapipe (lvp_get_physical_device_properties_1_1). Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5865 Fixes:9da15aa3aa("llvmpipe: enable EXT_memory_object(_fd)") Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de> Reviewed-by: Dave Airlie airlied@redhat.com Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14558> (cherry picked from commit537a0ee3b7)
This commit is contained in:
parent
f7a52a16cf
commit
ec2e78b3ff
2 changed files with 16 additions and 1 deletions
|
|
@ -2740,7 +2740,7 @@
|
|||
"description": "llvmpipe: Add get_{driver,device}_uuid implementations",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "9da15aa3aa94bc94ca1492df8c444ff76b92d19d"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -560,6 +560,18 @@ llvmpipe_get_compute_param(struct pipe_screen *_screen,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
llvmpipe_get_driver_uuid(struct pipe_screen *pscreen, char *uuid)
|
||||
{
|
||||
memset(uuid, 0, PIPE_UUID_SIZE);
|
||||
}
|
||||
|
||||
static void
|
||||
llvmpipe_get_device_uuid(struct pipe_screen *pscreen, char *uuid)
|
||||
{
|
||||
memset(uuid, 0, PIPE_UUID_SIZE);
|
||||
}
|
||||
|
||||
static const struct nir_shader_compiler_options gallivm_nir_options = {
|
||||
.lower_scmp = true,
|
||||
.lower_flrp32 = true,
|
||||
|
|
@ -1040,6 +1052,9 @@ llvmpipe_create_screen(struct sw_winsys *winsys)
|
|||
|
||||
screen->base.get_timestamp = llvmpipe_get_timestamp;
|
||||
|
||||
screen->base.get_driver_uuid = llvmpipe_get_driver_uuid;
|
||||
screen->base.get_device_uuid = llvmpipe_get_device_uuid;
|
||||
|
||||
screen->base.finalize_nir = llvmpipe_finalize_nir;
|
||||
|
||||
screen->base.get_disk_shader_cache = lp_get_disk_shader_cache;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue