Commit Graph

21 Commits

Author SHA1 Message Date
Triang3l
9fac0c0b5d [Vulkan] Fix VulkanInstance::Create return values 2025-08-15 18:07:10 +02:00
Triang3l
b5432ab83f [Vulkan] Refactoring and fixes for VulkanProvider and related areas
Enable portability subset physical device enumeration.

Don't use Vulkan 1.1+ logical devices on Vulkan 1.0 instances due to the
VkApplicationInfo::apiVersion specification.

Make sure all extension dependencies are enabled when creating a device.

Prefer exposing feature support over extension support via the device
interface to avoid causing confusion with regard to promoted extensions
(especially those that required some features as extensions, but had those
features made optional when they were promoted).

Allow creating presentation-only devices, not demanding any optional
features beyond the basic Vulkan 1.0, for use cases such as internal tools
or CPU rendering.

Require the independentBlend feature for GPU emulation as working around is
complicated, while support is almost ubiquitous.

Move the graphics system initialization fatal error message to xenia_main
after attempting to initialize all implementations, for automatic fallback
to other implementations in the future.

Log Vulkan driver info.

Improve Vulkan debug message logging, enabled by default.

Refactor code, with simplified logic for enabling extensions and layers.
2025-08-14 23:44:21 +03:00
Triang3l
7b93670dbd [Vulkan] Remove old Vulkan code, change shaders directory, create empty Vulkan backend 2020-08-31 21:44:29 +03:00
gibbed
a48bb71c2f Overhaul logging. 2020-04-07 16:09:41 -05:00
gibbed
5bf0b34445 C++17ification.
C++17ification!

- Filesystem interaction now uses std::filesystem::path.
- Usage of const char*, std::string have been changed to
  std::string_view where appropriate.
- Usage of printf-style functions changed to use fmt.
2020-04-07 16:09:41 -05:00
Jonathan Goyvaerts
c1af632562 Replace all gflag implementations with cvar implementations 2019-08-03 02:34:07 +02:00
gibbed
4caa2a2145 [Vulkan] Blacklist some validation layer errors we don't care about. 2018-06-04 23:37:58 -05:00
Dr. Chat
93b4c7133b [Vulkan] Update to Vulkan 1.1 2018-05-04 17:40:21 -05:00
Dr. Chat
61e47167c0 [Vulkan] Replace vulkan-loader with volk 2018-05-04 16:49:46 -05:00
DrChat
f5ee9b256c [Vulkan] Report vkCreateDebugReportCallbackEXT error codes 2018-02-22 21:12:37 -06:00
DrChat
0a75f68e88 [Vulkan] Fix freeing the swap chain surface twice during error shutdown. 2017-12-19 23:04:43 -06:00
DrChat
09b3a07e3c Support rendering windowless (tested on the Vulkan backend) 2017-12-19 16:05:36 -06:00
scribam
b6e7e66fbe Fix travis LINT 2017-09-20 23:29:39 +02:00
Doug Johnson
5d579fc846 Add Linux vulkan init routines using xcb lib 2017-07-11 11:47:24 -06:00
DrChat
6bbd399cfd Fix queueFlags formatting 2017-02-13 17:13:24 -06:00
Dr. Chat
48f6ba747c Track batch fences with the batches. 2016-11-08 18:11:12 -06:00
Dr. Chat
72d83591e5 Vulkan: Synchronize copies/draws to the swap chain.
Grab RenderDoc after creating the Vulkan instance
2016-07-29 10:34:54 -05:00
Dr. Chat
87c915e54d Vulkan: Re-enable the validation layers properly. 2016-07-27 23:59:25 -05:00
Dr. Chat
2e34a98cef Update the vulkan loader and headers. 2016-06-17 19:32:21 -05:00
Ben Vanik
8bf5eba098 Capture exe with renderdoc and pass --vulkan_renderdoc_capture_all. 2016-02-21 12:44:16 -08:00
Ben Vanik
9f52f2e819 Initial vulkan context and immediate drawer.
Extremely rough, just checking in so DrChat can snoop.
2016-02-18 16:43:41 -08:00