| Age | Commit message (Collapse) | Author |
|
PAGE_SHIFT is a #define in system headers that leaks into user code on some systems
|
|
gl_texture_cache: Avoid format views on Intel and AMD
|
|
vulkan_common: Move device abstraction to the common directory and allow surfaceless devices
|
|
vk_rasterizer: Skip binding empty descriptor sets on compute
|
|
Fixes unit tests where compute shaders had no descriptors in the set,
making Vulkan drivers crash when binding an empty set.
|
|
|
|
|
|
|
|
Intel and AMD proprietary drivers are incapable of rendering to texture
views of different formats than the original texture. Avoid creating
these at a cache level. This will consume more memory, emulating them
with copies.
|
|
This breaks accelerated decoders trying to imageStore into images with
sRGB. The decoders are currently disabled so this won't cause issues at
runtime.
|
|
The "VK" prefix predates the "Vulkan" namespace. It was carried around
the codebase for consistency. "VKDevice" currently is a bad alias with
"VkDevice" (only an upcase character of difference) that can cause
confusion. Rename all instances of it.
|
|
vulkan_common: Move reusable Vulkan abstractions to a separate directory
|
|
|
|
Service threads
|
|
For listing the available physical devices we can use Vulkan 1.0.
Now that MoltenVK supports 1.1 we can require it for running games.
Add missing documentation.
|
|
This makes easier to add and tune the required device limits.
|
|
VKDevice::IsSuitable was not being called. To address this issue, check
suitability before initialization and throw an exception if it fails.
By doing this, we can deduplicate some code on queue searches.
Previosuly we would first search if a present and graphics queue
existed, then on initialization we would search again to find the index.
|
|
The Vulkan device abstraction either initializes successfully on the
constructor or throws a Vulkan exception.
|
|
Report device enumeration errors with exceptions to be consistent with
other initialization related function calls. Reduces the amount of code
to maintain.
|
|
Move surface initialization code to a separate file. It's unlikely to
use this code outside of Vulkan, but keeping platform-specific code
(Win32, Xlib, Wayland) in its own translation unit keeps things cleaner.
|
|
Move more Vulkan code to report errors with exceptions and report them
through a log before notifying it with an error boolean for backwards
compatibility. In the future we can replace the rasterizer two-step
initialization to always use exceptions.
|
|
Initialize debug callbacks (messenger) from a separate file. This allows
sharing code with different backends.
Change our Vulkan error handling to use exceptions instead of error
codes, simplifying the initialization process.
|
|
Simplify Vulkan's backend initialization code by moving it to a separate
file, allowing us to initialize a Vulkan instance from different
backends.
|
|
vulkan_common/vulkan_wrapper.h
Allows sharing Vulkan wrapper code between different rendering backends.
|
|
Allows us to initialize a Vulkan dynamic library from different backends
without duplicating code.
|
|
|
|
Silences a -Wmaybe-uninitialized warning
|
|
The current texture cache has several points that hurt maintainability
and performance. It's easy to break unrelated parts of the cache
when doing minor changes. The cache can easily forget valuable
information about the cached textures by CPU writes or simply by its
normal usage.The current texture cache has several points that hurt
maintainability and performance. It's easy to break unrelated parts
of the cache when doing minor changes. The cache can easily forget
valuable information about the cached textures by CPU writes or simply
by its normal usage.
This commit aims to address those issues.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Add support for building SPIR-V shaders from GLSL and generating headers
to include the text of those same GLSL shaders to consume from OpenGL.
|
|
|
|
|
|
|
|
- We must always use a GPU thread now, even with synchronous GPU.
|
|
video_core: Enforce C4715 (not all control paths return a value)
|
|
Removes the unnecesary burden of maintaining separate #ifdef paths and
allows us sharing generic Vulkan code across APIs.
|
|
Most of the time people write code that always returns a value,
terminates execution, throws an exception, or uses an unconventional
jump primitive.
This is not always true when we build without asserts on mainline builds.
To avoid introducing undefined behavior on our most used builds, enforce
this warning signalling an error and stopping the build from shipping.
|
|
|
|
maxwell_3d: Remove unused dirty_pointer array
|
|
gl_shader_decompiler: Elide unnecessary copies within DeclareConstantBuffers()
|