summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Ho <willho@google.com>2022-09-30 15:10:32 -0700
committerWilliam Ho <willho@google.com>2022-10-05 22:55:08 -0700
commit70bd3bc412a0eb1c172429c66ee2fb7164c33242 (patch)
tree160fd4f8380e2830252a1ee3b5458347739fbe17
parentc963c98ff9e641ed6a06c5af8e9258468aee8f41 (diff)
downloadgfxstream-protocols-70bd3bc412a0eb1c172429c66ee2fb7164c33242.tar.gz
Add watchdog to AstcCpuDecompressor
...to monitor specifically and to prevent spurious hangs as a result of long decompression. Test: Generated code Bug: 247865035 Change-Id: Ia72744e41edcb7f57839967a9945dc69beead658
-rw-r--r--registry/vulkan/scripts/cereal/decoder.py2
-rw-r--r--registry/vulkan/scripts/cereal/subdecode.py9
2 files changed, 8 insertions, 3 deletions
diff --git a/registry/vulkan/scripts/cereal/decoder.py b/registry/vulkan/scripts/cereal/decoder.py
index 0a9adda1..8e90c106 100644
--- a/registry/vulkan/scripts/cereal/decoder.py
+++ b/registry/vulkan/scripts/cereal/decoder.py
@@ -601,7 +601,7 @@ custom_decodes = {
"vkDestroyImage" : emit_global_state_wrapped_decoding,
"vkDestroyImageView" : emit_global_state_wrapped_decoding,
"vkDestroySampler" : emit_global_state_wrapped_decoding,
- "vkCmdCopyBufferToImage" : emit_global_state_wrapped_decoding,
+ "vkCmdCopyBufferToImage" : emit_global_state_wrapped_decoding_with_context,
"vkCmdCopyImage" : emit_global_state_wrapped_decoding,
"vkCmdCopyImageToBuffer" : emit_global_state_wrapped_decoding,
"vkGetImageMemoryRequirements" : emit_global_state_wrapped_decoding,
diff --git a/registry/vulkan/scripts/cereal/subdecode.py b/registry/vulkan/scripts/cereal/subdecode.py
index 4989f3eb..3bd5b786 100644
--- a/registry/vulkan/scripts/cereal/subdecode.py
+++ b/registry/vulkan/scripts/cereal/subdecode.py
@@ -260,11 +260,13 @@ def emit_dispatch_call(api, cgen):
cgen.stmt("unlock()")
-def emit_global_state_wrapped_call(api, cgen, logger=False):
+def emit_global_state_wrapped_call(api, cgen, logger=False, context=False):
customParams = ["pool", "(VkCommandBuffer)(boxed_dispatchHandle)"] + \
list(map(lambda p: p.paramName, api.parameters[1:]))
if logger:
customParams += ["gfx_logger"];
+ if context:
+ customParams += ["context"];
cgen.vkApiCall(api, customPrefix=global_state_prefix,
customParameters=customParams, checkForDeviceLost=True, globalStatePrefix=global_state_prefix)
@@ -282,9 +284,12 @@ def emit_global_state_wrapped_decoding_with_logger(typeInfo, api, cgen):
emit_decode_parameters(typeInfo, api, cgen, globalWrapped=True)
emit_global_state_wrapped_call(api, cgen, logger=True)
+def emit_global_state_wrapped_decoding_with_context(typeInfo, api, cgen):
+ emit_decode_parameters(typeInfo, api, cgen, globalWrapped=True)
+ emit_global_state_wrapped_call(api, cgen, context=True)
custom_decodes = {
- "vkCmdCopyBufferToImage": emit_global_state_wrapped_decoding,
+ "vkCmdCopyBufferToImage": emit_global_state_wrapped_decoding_with_context,
"vkCmdCopyImage": emit_global_state_wrapped_decoding,
"vkCmdCopyImageToBuffer": emit_global_state_wrapped_decoding,
"vkCmdExecuteCommands": emit_global_state_wrapped_decoding,