| Age | Commit message (Collapse) | Author |
|
Shader_IR: add the ability to amend code in the shader ir.
|
|
|
|
maxwell_to_gl: Implement missing primitive topologies
|
|
This commit introduces a mechanism by which shader IR code can be
amended and extended. This useful for track algorithms where certain
information can derived from before the track such as indexes to array
samplers.
|
|
gl_rasterizer: Allow rendering without fragment shader
|
|
shader/texture: Implement AOFFI and PTP for TLD4 and TLD4S
|
|
Rendering without a fragment shader is usually used in depth-only
passes.
|
|
gl_rasterizer: Implement RASTERIZE_ENABLE
|
|
Many of these topologies are exclusively available in OpenGL.
|
|
Remove false commentary. Not dividing by 4 the size of shared memory is
not a hack; it describes the number of integers, not bytes.
While we are at it sort the generated code to put preprocessor lines on
the top.
|
|
|
|
RASTERIZE_ENABLE is the opposite of GL_RASTERIZER_DISCARD. Implement it
naturally using this.
NVN games expect rasterize to be enabled by default, reflect that in our
initial GPU state.
|
|
|
|
renderer_opengl: Miscellaneous clean ups
|
|
|
|
|
|
Corrections and fixes to TLD4S & bindless samplers failing
|
|
gl_device: Enable compute shaders for Intel Mesa drivers
|
|
gl_shader_cache: Add missing new-line on emitted GLSL
|
|
|
|
|
|
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.
|
|
|
|
Implement FLO & TXD Instructions on GPU Shaders
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
With all of the interfaces ready for migration, it's trivial to migrate
over GetPointer().
|
|
Amends a few interfaces to be able to handle the migration over to the
new Memory class by passing the class by reference as a function
parameter where necessary.
Notably, within the filesystem services, this eliminates two ReadBlock()
calls by using the helper functions of HLERequestContext to do that for
us.
|
|
gl_device: Deduce indexing bug from device instead of heuristic
|
|
Casts from f32 to f16 zeroes the higher half of the target register.
|
|
The heuristic to detect AMD's driver was not working properly since it
also included Intel. Instead of using heuristics to detect it, compare
the GL_VENDOR string.
|
|
gl_texture_cache: Apply sRGB on blits
|
|
gl_shader_cache: Miscellaneous changes to shaders
|
|
glBlitFramebuffer keeps in mind GL_FRAMEBUFFER_SRGB's state. Enable this
depending on the target surface pixel format.
|
|
gl_shader_gen: Apply default value to gl_Position
|
|
SSBOs and other resources are limited per pipeline on Intel and AMD.
Heuristically reserve resources per stage having in mind the reported
OpenGL limits.
|
|
glBindTextureUnit doesn't support null textures. Skip binding these.
|
|
Intel's proprietary driver enters in a corrupt state when compute
shaders are executed. For now, disable these.
|
|
The current shared memory size seems to be smaller than what the game
actually uses. This makes Nvidia's driver consistently blow up; in the
case of FE3H it made it explode on Qt's SwapBuffers while SDL2 worked
just fine. For now keep this hack since it's still progress over the
previous hardcoded shared memory size.
|