|
|
|
@ -17,7 +17,10 @@ namespace Vulkan { |
|
|
|
using namespace Common::Literals; |
|
|
|
|
|
|
|
TurboMode::TurboMode(const vk::Instance& instance, const vk::InstanceDispatch& dld) |
|
|
|
: m_device{CreateDevice(instance, dld, VK_NULL_HANDLE)}, m_allocator{m_device, false} { |
|
|
|
#ifndef ANDROID
|
|
|
|
: m_device{CreateDevice(instance, dld, VK_NULL_HANDLE)}, m_allocator{m_device, false} |
|
|
|
#endif
|
|
|
|
{ |
|
|
|
{ |
|
|
|
std::scoped_lock lk{m_submission_lock}; |
|
|
|
m_submission_time = std::chrono::steady_clock::now(); |
|
|
|
@ -34,6 +37,7 @@ void TurboMode::QueueSubmitted() { |
|
|
|
} |
|
|
|
|
|
|
|
void TurboMode::Run(std::stop_token stop_token) { |
|
|
|
#ifndef ANDROID
|
|
|
|
auto& dld = m_device.GetLogical(); |
|
|
|
|
|
|
|
// Allocate buffer. 2MiB should be sufficient.
|
|
|
|
@ -146,10 +150,13 @@ void TurboMode::Run(std::stop_token stop_token) { |
|
|
|
// Create a single command buffer.
|
|
|
|
auto cmdbufs = command_pool.Allocate(1, VK_COMMAND_BUFFER_LEVEL_PRIMARY); |
|
|
|
auto cmdbuf = vk::CommandBuffer{cmdbufs[0], m_device.GetDispatchLoader()}; |
|
|
|
#endif
|
|
|
|
|
|
|
|
while (!stop_token.stop_requested()) { |
|
|
|
#if defined(ANDROID) && defined(ARCHITECTURE_arm64)
|
|
|
|
#ifdef ANDROID
|
|
|
|
#ifdef ARCHITECTURE_arm64
|
|
|
|
adrenotools_set_turbo(true); |
|
|
|
#endif
|
|
|
|
#else
|
|
|
|
// Reset the fence.
|
|
|
|
fence.Reset(); |
|
|
|
|