diff options
author | William Ho <willho@google.com> | 2022-08-18 20:24:34 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2022-08-18 20:24:34 +0000 |
commit | b9a98cd10c9662e3037e0a2c40ee63b83d44f11c (patch) | |
tree | 817185e68d41516a4e3ef10fd6541d9f46d4dabd | |
parent | f9afd353790ef07f414d659484599c635ac7967c (diff) | |
parent | 4f9a29a2a5b3d6d7e9228974e6476d34ebbd2e08 (diff) | |
download | gfxstream-protocols-b9a98cd10c9662e3037e0a2c40ee63b83d44f11c.tar.gz |
Merge "Revert "Update codegen with logic to crash __atomic_load_n spin lock""
-rw-r--r-- | registry/vulkan/scripts/cereal/decoder.py | 23 | ||||
-rw-r--r-- | registry/vulkan/scripts/cerealgenerator.py | 1 |
2 files changed, 6 insertions, 18 deletions
diff --git a/registry/vulkan/scripts/cereal/decoder.py b/registry/vulkan/scripts/cereal/decoder.py index 6f8f7381..0a998ad7 100644 --- a/registry/vulkan/scripts/cereal/decoder.py +++ b/registry/vulkan/scripts/cereal/decoder.py @@ -40,14 +40,11 @@ private: """ decoder_impl_preamble =""" -using android::base::CreateMetricsLogger; using emugl::vkDispatch; using emugl::GfxApiLogger; using namespace goldfish_vk; -static uint32_t kSeqnoLoopLimit = 25'000; - class VkDecoder::Impl { public: Impl() : m_logCalls(android::base::getEnvironmentVariable("ANDROID_EMU_VK_LOG_CALLS") == "1"), @@ -754,20 +751,12 @@ class VulkanDecoder(VulkanWrapperGenerator): if (queueSubmitWithCommandsEnabled && ((opcode >= OP_vkFirst && opcode < OP_vkLast) || (opcode >= OP_vkFirst_old && opcode < OP_vkLast_old))) { uint32_t seqno; memcpy(&seqno, *readStreamPtrPtr, sizeof(uint32_t)); *readStreamPtrPtr += sizeof(uint32_t); if (seqnoPtr && !m_forSnapshotLoad) { - uint32_t count = 0; - while ((seqno - __atomic_load_n(seqnoPtr, __ATOMIC_SEQ_CST) != 1) && count < kSeqnoLoopLimit) { - count++; - #if (defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64))) - _mm_pause(); - #elif (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) - __asm__ __volatile__("pause;"); - #endif - } - if (count == kSeqnoLoopLimit) { - auto logger = CreateMetricsLogger(); - logger->setCrashAnnotation("seqnoPtr", std::to_string(__atomic_load_n(seqnoPtr, __ATOMIC_SEQ_CST)).c_str()); - logger->setCrashAnnotation("seqno", std::to_string(seqno).c_str()); - GFXSTREAM_ABORT(::emugl::FatalError(::emugl::ABORT_REASON_OTHER)); + while ((seqno - __atomic_load_n(seqnoPtr, __ATOMIC_SEQ_CST) != 1)) { + #if (defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64))) + _mm_pause(); + #elif (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) + __asm__ __volatile__("pause;"); + #endif } } } diff --git a/registry/vulkan/scripts/cerealgenerator.py b/registry/vulkan/scripts/cerealgenerator.py index 70ca2de1..3b43a911 100644 --- a/registry/vulkan/scripts/cerealgenerator.py +++ b/registry/vulkan/scripts/cerealgenerator.py @@ -377,7 +377,6 @@ class BumpPool; #include "common/goldfish_vk_transform.h" #include "{self.baseLibDirPrefix}/BumpPool.h" -#include "{self.baseLibDirPrefix}/Metrics.h" #include "{self.baseLibDirPrefix}/System.h" #include "{self.baseLibDirPrefix}/Tracing.h" #include "stream-servers/IOStream.h" |