| Age | Commit message (Collapse) | Author |
|
This allows us to put VKFenceWatch inside a std::vector without storing
it in heap. On move we have to signal the fences where the new protected
resource is, adding some overhead.
|
|
VK_NV_device_diagnostic_checkpoints allows us to push data to a Vulkan
queue and then query it even after a device loss. This allows us to push
the current pipeline object and see what was the call that killed the
device.
|
|
|
|
vk_scheduler: Delegate commands to a worker thread and state track
|
|
renderer_opengl: Miscellaneous clean ups
|
|
Corrections and fixes to TLD4S & bindless samplers failing
|
|
maxwell_to_vk: Use VK_EXT_index_type_uint8 and misc changes
|
|
gl_device: Enable compute shaders for Intel Mesa drivers
|
|
gl_shader_cache: Add missing new-line on emitted GLSL
|
|
A1B5G5R5 uses A1R5G5B5. This is flipped with image view swizzles;
flushing is still not properly implemented on Vulkan for this particular
format.
|
|
|
|
Add an extra argument to query device capabilities in the future. The
intention behind this is to use native quads, quad strips, line loops
and polygons if these are released for Vulkan.
|
|
The OpenGL spec defines GL_CLAMP's formula similarly to CLAMP_TO_EDGE
and CLAMP_TO_BORDER depending on the filter mode used. It doesn't
exactly behave like this, but it's the closest we can get with what
Vulkan offers without emulating it by injecting shader code.
|
|
|
|
Introduce a worker thread approach for delegating Vulkan work derived
from dxvk's approach. https://github.com/doitsujin/dxvk
Now that the scheduler is what handles all Vulkan work related to
command streaming, store state tracking in itself. This way we can know
when to reupload Vulkan dynamic state to the queue (since this one is
invalidated between command buffers unlike NVN). We can also store the
renderpass state and graphics pipeline bound to avoid redundant binds
and renderpass begins/ends.
|
|
Added missing include
|
|
|
|
|
|
|
|
|
|
implemented.
This commit ensures the OGL backend does not execute tesselation shader
stages as they are currently unimplemented.
|
|
shader: Implement MEMBAR.GL
|
|
|
|
Previously we naively checked for "Intel" in GL_VENDOR, but this
includes both Intel's proprietary driver and the mesa driver. Re-enable
compute shaders for mesa.
|
|
Add missing new-line. This caused shaders using local memory and shared
memory to inject a preprocessor GLSL line after an expression (resulting
in invalid code).
It looked like this:
shared uint smem[8];#define LOCAL_MEMORY_SIZE 16
It should look like this (addressed by this commit):
shared uint smem[8];
\#define LOCAL_MEMORY_SIZE 16
|
|
This commit finishes adding depth mode that was reverted before due to
other unresolved issues.
|
|
Implement using memoryBarrier in GLSL and OpMemoryBarrier on SPIR-V.
|
|
|
|
|
|
|
|
Update Sirit and its usage in vk_shader_decompiler. Highlights:
- Implement tessellation shaders
- Implement geometry shaders
- Implement some missing features
- Use native half float instructions when available.
|
|
|
|
|
|
- Setup more features and requirements.
- Improve logging for missing features.
- Collect telemetry parameters.
- Add queries for more image formats.
- Query push constants limits.
- Optionally enable some extensions.
|
|
maxwell_3d: Add tessellation state entries
|
|
|
|
We don't know until the game is running if it's using an sRGB color
space or not. Add support for hot-swapping swapchain surface formats.
|
|
|
|
|
|
|
|
|
|
Implement FLO & TXD Instructions on GPU Shaders
|
|
Texture_Cache: Redo invalid Surfaces handling.
|
|
gl_framebuffer_cache: Optimize framebuffer cache management
|
|
Some texture views were being created out of bounds (with more layers or
mipmaps than what the original texture has). This is because of a
miscalculation in mipmap bounding. end_layer and end_mipmap are out of
bounds (e.g. layer 6 in a cubemap), there's no need to add one more
there.
Fixes OpenGL errors and Vulkan crashes on Splatoon 2.
|
|
Pack color attachment enumerations into a single u32. To determine the
number of buffers, the highest color attachment with a shared pointer
that doesn't point to null is used.
|
|
|
|
|
|
|
|
|