v3dv: fix color clear pipeline destruction for 32-bit architectures

Command buffer object destruction callbacks take 64-bit object
handles, but we defined the color clear pipeline callback to take
a 32-bit argument.

Should fix recent crash regressions with some CTS tests on Rpi4.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>
This commit is contained in:
Iago Toral Quiroga
2020-08-27 12:44:54 +02:00
committed by Marge Bot
parent 4acf5985a4
commit 9518b677f1
+4 -2
View File
@@ -30,9 +30,11 @@
static void
destroy_color_clear_pipeline(VkDevice _device,
struct v3dv_meta_color_clear_pipeline *p,
uint64_t pipeline,
VkAllocationCallbacks *alloc)
{
struct v3dv_meta_color_clear_pipeline *p =
(struct v3dv_meta_color_clear_pipeline *) (uintptr_t) pipeline;
v3dv_DestroyPipeline(_device, p->pipeline, alloc);
if (p->cached)
v3dv_DestroyRenderPass(_device, p->pass, alloc);
@@ -65,7 +67,7 @@ v3dv_meta_clear_finish(struct v3dv_device *device)
hash_table_foreach(device->meta.color_clear.cache, entry) {
struct v3dv_meta_color_clear_pipeline *item = entry->data;
destroy_color_clear_pipeline(_device, item, &device->alloc);
destroy_color_clear_pipeline(_device, (uintptr_t)item, &device->alloc);
}
_mesa_hash_table_destroy(device->meta.color_clear.cache, NULL);