Not crashing (but also likely not working) EDRAM emulation.

This commit is contained in:
Ben Vanik
2016-02-19 20:36:10 -08:00
parent 8820c73532
commit de1e4661ff
12 changed files with 851 additions and 42 deletions

View File

@@ -47,6 +47,9 @@ class BaseFencedPool {
}
}
// True if one or more batches are still pending on the GPU.
bool has_pending() const { return pending_batch_list_head_ != nullptr; }
// Checks all pending batches for completion and scavenges their entries.
// This should be called as frequently as reasonable.
void Scavenge() {

View File

@@ -10,3 +10,7 @@
#include "xenia/ui/vulkan/vulkan.h"
DEFINE_bool(vulkan_validation, false, "Enable Vulkan validation layers.");
DEFINE_bool(vulkan_primary_queue_only, false,
"Force the use of the primary queue, ignoring any additional that "
"may be present.");

View File

@@ -30,5 +30,6 @@
#define XELOGVK XELOGI
DECLARE_bool(vulkan_validation);
DECLARE_bool(vulkan_primary_queue_only);
#endif // XENIA_UI_VULKAN_VULKAN_H_

View File

@@ -142,7 +142,7 @@ void VulkanContext::EndSwap() {
}
std::unique_ptr<RawImage> VulkanContext::Capture() {
assert_always();
// TODO(benvanik): read back swap chain front buffer.
return nullptr;
}

View File

@@ -129,6 +129,11 @@ bool VulkanDevice::Initialize(DeviceInfo device_info) {
return false;
}
// Some tools *cough* renderdoc *cough* can't handle multiple queues.
if (FLAGS_vulkan_primary_queue_only) {
queue_count = 1;
}
VkDeviceQueueCreateInfo queue_info;
queue_info.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
queue_info.pNext = nullptr;