Age | Commit message (Collapse) | Author |
|
shader/other: Fix hardcoded value in S2R INVOCATION_INFO
|
|
maxwell_to_vk: Add R16UI image format
|
|
- Used by Octopath Traveler
|
|
buffer_cache: Avoid copying twice on certain cases
|
|
maxwell_3d: Initialize more registers to their expected value
|
|
format_lookup_table: Implement G24S8 format as S8Z24
|
|
fixed_pipeline_state,gl_rasterizer: Swap negative viewport checks for front faces
|
|
vk_rasterizer: Implement constant attributes
|
|
OpenGL: Enable Debug Context and Synchronous debugging when graphics debugging is enabled
|
|
texture_cache: Optimize GetSurfacesInRegion
|
|
Previously we were disabling compute shaders on Intel's proprietary driver due to broken compute. This has been fixed in the latest Intel drivers. Re-enable compute for Intel proprietary drivers and remove the check for broken compute.
|
|
shader/other: Implement MEMBAR.CTS
|
|
Geometry shaders built from Nvidia's compiler check for bits[16:23] to
be less than or equal to 0 with VSETP to default to a "safe" value of
0x8000'0000 (safe from hardware's perspective). To avoid hitting this
path in the shader, return 0x00ff'0000 from S2R INVOCATION_INFO.
This seems to be the maximum number of vertices a geometry shader can
emit in a primitive.
|
|
|
|
maxwell_3d: Reduce severity of logs that can be spammed
|
|
texture_cache: Implement depth stencil texture swizzles
|
|
patch_manager: Add support for case-sensitivity on Linux
|
|
These logs were killing performance on some games when they were
spammed. Reduce them to Debug severity.
|
|
|
|
|
|
|
|
gl_shader_manager: Unbind GLSL program when binding a host pipeline
|
|
Changes many patch_manager functions to use a case-less variant of
GetSubdirectory. Fixes patches not showing up on *nix systems when
patch directories are named with odd cases, i.e. `exeFS'.
|
|
main: Log host system memory parameters
|
|
Avoid copying to a staging buffer on non-granular memory addresses.
Add a callable argument to StreamBufferUpload to be able to copy to the
staging buffer directly from ReadBlockUnsafe.
|
|
|
|
maxwell_to_vk: Add format B8G8R8A8_SRGB and add Attachable capability for B8G8R8A8_UNORM
|
|
This avoids most heap allocations when collecting surfaces into a
vector.
|
|
Initialize line widths to avoid setting a line width of zero.
|
|
NVN expects this to be initialized as Fill, otherwise games that never
bind a rasterizer state will log an invalid polygon mode.
|
|
|
|
This silences an assertion we were hitting and uses workgroup memory
barriers when the game requests it.
|
|
Null texture cubes were not considered arrays, causing issues on Vulkan
and OpenGL when creating views.
|
|
This fixes cases where the texture swizzle was applied twice on the same
draw to a texture bound to two different slots.
|
|
Stop ignoring image swizzles on depth and stencil images.
This doesn't fix a known issue on Xenoblade Chronicles 2 where an OpenGL
texture changes swizzles twice before being used. A proper fix would be
having a small texture view cache for this like we do on Vulkan.
|
|
While Vulkan was assuming we had no negative viewports, OpenGL code
was assuming we had them. Port the old code from Vulkan to OpenGL,
checking if the first viewport is negative before flipping faces.
This is not a complete implementation since we only check for the first
viewport to be negative. That said, unless a game is using Vulkan,
OpenGL and NVN games should be fine here, and we can always compare with
our Vulkan backend to see if there's a difference.
|
|
The check to flip faces when viewports are negative were a left over
from the old OpenGL code. This is not required on Vulkan where we have
negative viewports.
|
|
shader/other: Implement BAR.SYNC 0x0
|
|
shader/memory: Implement non-addition operations in RED
|
|
Fixes regression in Link's Awakening caused by 420cc13248350ef5c2d19e0b961cb4185cd16a8a
|
|
shader_decompiler: Visit source nodes even when they assign to RZ
|
|
Correct a series of crashes and intructions on Async GPU and Vulkan Pipeline
|
|
renderer_opengl: Add assembly program code paths
|
|
shader/other: Implement thread comparisons (NV_shader_thread_group)
|
|
buffer_cache: Replace boost::icl::interval_map with boost::intrusive::set
|
|
|
|
Trivially implement this particular case of BAR. Unless games use OpenCL
or CUDA barriers, we shouldn't hit any other case here.
|
|
Trivially implement these instructions. They are used in Astral Chain.
|
|
Hardware S2R special registers match gl_Thread*MaskNV. We can trivially
implement these using Nvidia's extension on OpenGL or naively stubbing
them with the ARB instructions to match. This might cause issues if the
host device warp size doesn't match Nvidia's. That said, this is
unlikely on proper shaders.
Refer to the attached url for more documentation about these flags.
https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_thread_group.txt
|
|
Some operations like atomicMin were ignored because they returned were
being stored to RZ. This operations have a side effect and it was being
ignored.
|