renderer_vulkan: Fix staging buffer size
This commit is contained in:
@ -332,7 +332,8 @@ void Config::ReadDebuggingValues() {
|
||||
Settings::values.use_gdbstub = ReadSetting(QStringLiteral("use_gdbstub"), false).toBool();
|
||||
Settings::values.gdbstub_port = ReadSetting(QStringLiteral("gdbstub_port"), 24689).toInt();
|
||||
Settings::values.renderer_debug = ReadSetting(QStringLiteral("renderer_debug"), false).toBool();
|
||||
Settings::values.dump_command_buffers = ReadSetting(QStringLiteral("dump_command_buffers"), false).toBool();
|
||||
Settings::values.dump_command_buffers =
|
||||
ReadSetting(QStringLiteral("dump_command_buffers"), false).toBool();
|
||||
|
||||
qt_config->beginGroup(QStringLiteral("LLE"));
|
||||
for (const auto& service_module : Service::service_module_map) {
|
||||
@ -893,7 +894,8 @@ void Config::SaveDebuggingValues() {
|
||||
WriteSetting(QStringLiteral("use_gdbstub"), Settings::values.use_gdbstub, false);
|
||||
WriteSetting(QStringLiteral("gdbstub_port"), Settings::values.gdbstub_port, 24689);
|
||||
WriteSetting(QStringLiteral("renderer_debug"), Settings::values.renderer_debug, false);
|
||||
WriteSetting(QStringLiteral("dump_command_buffers"), Settings::values.dump_command_buffers, false);
|
||||
WriteSetting(QStringLiteral("dump_command_buffers"), Settings::values.dump_command_buffers,
|
||||
false);
|
||||
|
||||
qt_config->beginGroup(QStringLiteral("LLE"));
|
||||
for (const auto& service_module : Settings::values.lle_modules) {
|
||||
|
@ -154,11 +154,14 @@ struct ScreenRectVertex {
|
||||
constexpr u32 VERTEX_BUFFER_SIZE = sizeof(ScreenRectVertex) * 8192;
|
||||
|
||||
RendererVulkan::RendererVulkan(Frontend::EmuWindow& window)
|
||||
: RendererBase{window}, instance{window, Settings::values.physical_device},
|
||||
scheduler{instance, *this}, renderpass_cache{instance, scheduler},
|
||||
runtime{instance, scheduler, renderpass_cache}, swapchain{instance, renderpass_cache},
|
||||
vertex_buffer{
|
||||
instance, scheduler, VERTEX_BUFFER_SIZE, vk::BufferUsageFlagBits::eVertexBuffer, {}} {
|
||||
: RendererBase{window}, instance{window, Settings::values.physical_device}, scheduler{instance,
|
||||
*this},
|
||||
renderpass_cache{instance, scheduler}, runtime{instance, scheduler, renderpass_cache},
|
||||
swapchain{instance, renderpass_cache}, vertex_buffer{instance,
|
||||
scheduler,
|
||||
VERTEX_BUFFER_SIZE,
|
||||
vk::BufferUsageFlagBits::eVertexBuffer,
|
||||
{}} {
|
||||
|
||||
auto& telemetry_session = Core::System::GetInstance().TelemetrySession();
|
||||
constexpr auto user_system = Common::Telemetry::FieldType::UserSystem;
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
#include <span>
|
||||
#include "common/assert.h"
|
||||
#include "core/settings.h"
|
||||
#include "core/frontend/emu_window.h"
|
||||
#include "core/settings.h"
|
||||
#include "video_core/renderer_vulkan/vk_instance.h"
|
||||
#include "video_core/renderer_vulkan/vk_platform.h"
|
||||
|
||||
|
@ -87,7 +87,6 @@ public:
|
||||
|
||||
/// Returns true when VK_KHR_timeline_semaphore is supported
|
||||
bool IsTimelineSemaphoreSupported() const {
|
||||
return false;
|
||||
return timeline_semaphores;
|
||||
}
|
||||
|
||||
|
@ -604,8 +604,8 @@ void PipelineCache::BindDescriptorSets() {
|
||||
try {
|
||||
batch = device.allocateDescriptorSets(alloc_info);
|
||||
} catch (vk::OutOfPoolMemoryError& err) {
|
||||
LOG_CRITICAL(Render_Vulkan, "Run out of pool memory for layout {}: {}",
|
||||
i, err.what());
|
||||
LOG_CRITICAL(Render_Vulkan, "Run out of pool memory for layout {}: {}", i,
|
||||
err.what());
|
||||
UNREACHABLE();
|
||||
}
|
||||
}
|
||||
|
@ -1589,17 +1589,15 @@ bool RasterizerVulkan::AccelerateDisplay(const GPU::Regs::FramebufferConfig& con
|
||||
|
||||
vk::Sampler RasterizerVulkan::CreateSampler(const SamplerInfo& info) {
|
||||
const bool use_border_color = instance.IsCustomBorderColorSupported() &&
|
||||
(info.wrap_s == SamplerInfo::TextureConfig::ClampToBorder ||
|
||||
info.wrap_t == SamplerInfo::TextureConfig::ClampToBorder);
|
||||
(info.wrap_s == SamplerInfo::TextureConfig::ClampToBorder ||
|
||||
info.wrap_t == SamplerInfo::TextureConfig::ClampToBorder);
|
||||
auto properties = instance.GetPhysicalDevice().getProperties();
|
||||
|
||||
const auto color = PicaToVK::ColorRGBA8(info.border_color);
|
||||
const vk::SamplerCustomBorderColorCreateInfoEXT border_color_info = {
|
||||
.customBorderColor = vk::ClearColorValue{
|
||||
.float32 = std::array{color[0], color[1], color[2], color[3]}
|
||||
},
|
||||
.format = vk::Format::eUndefined
|
||||
};
|
||||
.customBorderColor =
|
||||
vk::ClearColorValue{.float32 = std::array{color[0], color[1], color[2], color[3]}},
|
||||
.format = vk::Format::eUndefined};
|
||||
|
||||
const vk::SamplerCreateInfo sampler_info = {
|
||||
.pNext = use_border_color ? &border_color_info : nullptr,
|
||||
@ -1615,8 +1613,8 @@ vk::Sampler RasterizerVulkan::CreateSampler(const SamplerInfo& info) {
|
||||
.compareOp = vk::CompareOp::eAlways,
|
||||
.minLod = info.lod_min,
|
||||
.maxLod = info.lod_max,
|
||||
.borderColor = use_border_color ? vk::BorderColor::eFloatCustomEXT
|
||||
: vk::BorderColor::eIntOpaqueBlack,
|
||||
.borderColor =
|
||||
use_border_color ? vk::BorderColor::eFloatCustomEXT : vk::BorderColor::eIntOpaqueBlack,
|
||||
.unnormalizedCoordinates = false};
|
||||
|
||||
vk::Device device = instance.GetDevice();
|
||||
|
@ -67,9 +67,8 @@ StagingBuffer::~StagingBuffer() {
|
||||
|
||||
StreamBuffer::StreamBuffer(const Instance& instance, TaskScheduler& scheduler, u32 size,
|
||||
vk::BufferUsageFlagBits usage, std::span<const vk::Format> view_formats)
|
||||
: instance{instance}, scheduler{scheduler}, staging{instance, size,
|
||||
vk::BufferUsageFlagBits::eTransferSrc},
|
||||
usage{usage}, total_size{size * SCHEDULER_COMMAND_COUNT} {
|
||||
: instance{instance}, scheduler{scheduler}, total_size{size * SCHEDULER_COMMAND_COUNT},
|
||||
staging{instance, total_size, vk::BufferUsageFlagBits::eTransferSrc}, usage{usage} {
|
||||
|
||||
const vk::BufferCreateInfo buffer_info = {
|
||||
.size = total_size, .usage = usage | vk::BufferUsageFlagBits::eTransferDst};
|
||||
|
@ -75,12 +75,12 @@ private:
|
||||
|
||||
const Instance& instance;
|
||||
TaskScheduler& scheduler;
|
||||
u32 total_size = 0;
|
||||
StagingBuffer staging;
|
||||
|
||||
vk::Buffer buffer{};
|
||||
VmaAllocation allocation{};
|
||||
vk::BufferUsageFlagBits usage;
|
||||
u32 total_size = 0;
|
||||
std::array<vk::BufferView, MAX_BUFFER_VIEWS> views{};
|
||||
std::size_t view_count = 0;
|
||||
|
||||
|
Reference in New Issue
Block a user