Mesa (master): radv: avoid GPU hangs if someone does a resolve with non-multisample src (v2)
Dave Airlie
airlied at kemper.freedesktop.org
Sat Aug 5 02:53:11 UTC 2017
Module: Mesa
Branch: master
Commit: 36a1b61321561634c6b243cf876c347fef73dfa4
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=36a1b61321561634c6b243cf876c347fef73dfa4
Author: Dave Airlie <airlied at redhat.com>
Date: Fri Aug 4 02:13:55 2017 +0100
radv: avoid GPU hangs if someone does a resolve with non-multisample src (v2)
This is a bug in the app, but I'd rather avoid hanging the GPU,
esp if someone is running in validation and it takes out their
development environment.
v2: get it right, reverse the polarity.
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Cc: <mesa-stable at lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied at redhat.com>
---
src/amd/vulkan/radv_meta_resolve.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/amd/vulkan/radv_meta_resolve.c b/src/amd/vulkan/radv_meta_resolve.c
index 6cd0c381a5..6023e0f899 100644
--- a/src/amd/vulkan/radv_meta_resolve.c
+++ b/src/amd/vulkan/radv_meta_resolve.c
@@ -382,6 +382,11 @@ void radv_CmdResolveImage(
radv_meta_save_graphics_reset_vport_scissor_novertex(&saved_state, cmd_buffer);
assert(src_image->info.samples > 1);
+ if (src_image->info.samples <= 1) {
+ /* this causes GPU hangs if we get past here */
+ fprintf(stderr, "radv: Illegal resolve operation (src not multisampled), will hang GPU.");
+ return;
+ }
assert(dest_image->info.samples == 1);
if (src_image->info.samples >= 16) {
More information about the mesa-commit
mailing list