summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-12-30 08:58:38 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-12-31 06:07:34 +0100
commitcdbee27692d73046cecf56fdea1c90f72ebbc0ce (patch)
treee360cc51563b7bee53e67587a421a1d15be3221e /src/video_core/renderer_vulkan
parentvk_device: Use an array to report lacking device limits (diff)
downloadyuzu-cdbee27692d73046cecf56fdea1c90f72ebbc0ce.tar
yuzu-cdbee27692d73046cecf56fdea1c90f72ebbc0ce.tar.gz
yuzu-cdbee27692d73046cecf56fdea1c90f72ebbc0ce.tar.bz2
yuzu-cdbee27692d73046cecf56fdea1c90f72ebbc0ce.tar.lz
yuzu-cdbee27692d73046cecf56fdea1c90f72ebbc0ce.tar.xz
yuzu-cdbee27692d73046cecf56fdea1c90f72ebbc0ce.tar.zst
yuzu-cdbee27692d73046cecf56fdea1c90f72ebbc0ce.zip
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/renderer_vulkan.cpp9
-rw-r--r--src/video_core/renderer_vulkan/renderer_vulkan.h1
-rw-r--r--src/video_core/renderer_vulkan/vk_device.cpp10
-rw-r--r--src/video_core/renderer_vulkan/vk_device.h9
-rw-r--r--src/video_core/renderer_vulkan/vk_shader_decompiler.cpp11
5 files changed, 12 insertions, 28 deletions
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
index fdce11b06..5b35cb407 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
@@ -127,8 +127,8 @@ void RendererVulkan::SwapBuffers(const Tegra::FramebufferConfig* framebuffer) {
bool RendererVulkan::Init() try {
library = OpenLibrary();
- std::tie(instance, instance_version) = CreateInstance(
- library, dld, render_window.GetWindowInfo().type, true, Settings::values.renderer_debug);
+ instance = CreateInstance(library, dld, VK_API_VERSION_1_1, render_window.GetWindowInfo().type,
+ true, Settings::values.renderer_debug);
if (Settings::values.renderer_debug) {
debug_callback = CreateDebugCallback(instance);
}
@@ -184,8 +184,7 @@ void RendererVulkan::InitializeDevice() {
throw vk::Exception(VK_ERROR_INITIALIZATION_FAILED);
}
const vk::PhysicalDevice physical_device(devices[static_cast<size_t>(device_index)], dld);
- device =
- std::make_unique<VKDevice>(*instance, instance_version, physical_device, *surface, dld);
+ device = std::make_unique<VKDevice>(*instance, physical_device, *surface, dld);
}
void RendererVulkan::Report() const {
@@ -213,7 +212,7 @@ void RendererVulkan::Report() const {
std::vector<std::string> RendererVulkan::EnumerateDevices() try {
vk::InstanceDispatch dld;
const Common::DynamicLibrary library = OpenLibrary();
- const vk::Instance instance = CreateInstance(library, dld).first;
+ const vk::Instance instance = CreateInstance(library, dld, VK_API_VERSION_1_0);
const std::vector<VkPhysicalDevice> physical_devices = instance.EnumeratePhysicalDevices();
std::vector<std::string> names;
names.reserve(physical_devices.size());
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.h b/src/video_core/renderer_vulkan/renderer_vulkan.h
index a05b3bd38..f22f50709 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.h
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.h
@@ -68,7 +68,6 @@ private:
vk::InstanceDispatch dld;
vk::Instance instance;
- u32 instance_version{};
vk::SurfaceKHR surface;
diff --git a/src/video_core/renderer_vulkan/vk_device.cpp b/src/video_core/renderer_vulkan/vk_device.cpp
index 024d5c2de..fd55ca8a8 100644
--- a/src/video_core/renderer_vulkan/vk_device.cpp
+++ b/src/video_core/renderer_vulkan/vk_device.cpp
@@ -206,10 +206,10 @@ std::unordered_map<VkFormat, VkFormatProperties> GetFormatProperties(
} // Anonymous namespace
-VKDevice::VKDevice(VkInstance instance_, u32 instance_version_, vk::PhysicalDevice physical_,
- VkSurfaceKHR surface, const vk::InstanceDispatch& dld_)
+VKDevice::VKDevice(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR surface,
+ const vk::InstanceDispatch& dld_)
: instance{instance_}, dld{dld_}, physical{physical_}, properties{physical.GetProperties()},
- instance_version{instance_version_}, format_properties{GetFormatProperties(physical, dld)} {
+ format_properties{GetFormatProperties(physical, dld)} {
CheckSuitability();
SetupFamilies(surface);
SetupFeatures();
@@ -653,9 +653,7 @@ std::vector<const char*> VKDevice::LoadExtensions() {
test(has_ext_custom_border_color, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, false);
test(has_ext_extended_dynamic_state, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, false);
test(has_ext_robustness2, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, false);
- if (instance_version >= VK_API_VERSION_1_1) {
- test(has_ext_subgroup_size_control, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, false);
- }
+ test(has_ext_subgroup_size_control, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, false);
if (Settings::values.renderer_debug) {
test(nv_device_diagnostics_config, VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME,
true);
diff --git a/src/video_core/renderer_vulkan/vk_device.h b/src/video_core/renderer_vulkan/vk_device.h
index 63e123d02..146acbe24 100644
--- a/src/video_core/renderer_vulkan/vk_device.h
+++ b/src/video_core/renderer_vulkan/vk_device.h
@@ -24,8 +24,8 @@ const u32 GuestWarpSize = 32;
/// Handles data specific to a physical device.
class VKDevice final {
public:
- explicit VKDevice(VkInstance instance, u32 instance_version, vk::PhysicalDevice physical,
- VkSurfaceKHR surface, const vk::InstanceDispatch& dld);
+ explicit VKDevice(VkInstance instance, vk::PhysicalDevice physical, VkSurfaceKHR surface,
+ const vk::InstanceDispatch& dld);
~VKDevice();
/**
@@ -79,11 +79,6 @@ public:
return present_family;
}
- /// Returns the current instance Vulkan API version in Vulkan-formatted version numbers.
- u32 InstanceApiVersion() const {
- return instance_version;
- }
-
/// Returns the current Vulkan API version provided in Vulkan-formatted version numbers.
u32 ApiVersion() const {
return properties.apiVersion;
diff --git a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp
index 09d6f9f35..571460c2f 100644
--- a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp
+++ b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp
@@ -272,19 +272,12 @@ bool IsPrecise(Operation operand) {
return false;
}
-u32 ShaderVersion(const VKDevice& device) {
- if (device.InstanceApiVersion() < VK_API_VERSION_1_1) {
- return 0x00010000;
- }
- return 0x00010300;
-}
-
class SPIRVDecompiler final : public Sirit::Module {
public:
explicit SPIRVDecompiler(const VKDevice& device_, const ShaderIR& ir_, ShaderType stage_,
const Registry& registry_, const Specialization& specialization_)
- : Module(ShaderVersion(device_)), device{device_}, ir{ir_}, stage{stage_},
- header{ir_.GetHeader()}, registry{registry_}, specialization{specialization_} {
+ : Module(0x00010300), device{device_}, ir{ir_}, stage{stage_}, header{ir_.GetHeader()},
+ registry{registry_}, specialization{specialization_} {
if (stage_ != ShaderType::Compute) {
transform_feedback = BuildTransformFeedback(registry_.GetGraphicsInfo());
}