summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Ho <willho@google.com>2022-08-18 20:24:34 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-08-18 20:24:34 +0000
commitb9a98cd10c9662e3037e0a2c40ee63b83d44f11c (patch)
tree817185e68d41516a4e3ef10fd6541d9f46d4dabd
parentf9afd353790ef07f414d659484599c635ac7967c (diff)
parent4f9a29a2a5b3d6d7e9228974e6476d34ebbd2e08 (diff)
downloadgfxstream-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.py23
-rw-r--r--registry/vulkan/scripts/cerealgenerator.py1
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"