| Age | Commit message (Collapse) | Author |
|
glBlitFramebuffer keeps in mind GL_FRAMEBUFFER_SRGB's state. Enable this
depending on the target surface pixel format.
|
|
maxwell_3d: Fix stencil_back_func_mask offset
|
|
buffer_cache: Remove brace initialized for objects with default constructor
|
|
|
|
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.
|
|
|
|
Stage and compute shaders were using a different binding counter.
Normalize these.
|
|
|
|
|
|
|
|
Images were not being bound to draw invocations because these would
require a cache invalidation.
|
|
Local memory size in compute shaders was stubbed with an arbitary size.
This commit specializes local memory size from guest GPU parameters.
|
|
Shared memory was being declared with an undefined size. Specialize from
guest GPU parameters the compute shader's shared memory size.
|
|
Drop the usage of ARB_compute_variable_group_size and specialize compute
shaders instead. This permits compute to run on AMD and Intel
proprietary drivers.
|
|
Some games like "Fire Emblem: Three Houses" bind 2D textures to offsets
used by instructions of 1D textures. To handle the discrepancy this
commit uses the the texture type from the binding and modifies the
emitted code IR to build a valid backend expression.
E.g.: Bound texture is 2D and instruction is 1D, the emitted IR samples
a 2D texture in the coordinate ivec2(X, 0).
|
|
Instead of specializing shaders to separate texture buffers from 1D
textures, use the locker to deduce them while they are being decoded.
|
|
|
|
This commit aims to redo the full setup of invalid textures and
guarantee correct behavior across backends in the case of finding one by
using black dummy textures that match the target of the expected
texture.
|
|
While DEPBAR is stubbed it doesn't change anything from our end. Shading
languages handle what this instruction does implicitly. We are not
getting anything out fo this log except noise.
|
|
Nvidia has sane default output values for varyings, but the other
vendors don't apply these. To properly emulate this we would have to
analyze the shader header. For the time being, apply the same default
Nvidia applies so we get the same behaviour on non-Nvidia drivers.
|
|
texture_cache: Use a flat table instead of switch for texture format lookups
|
|
|
|
gl_rasterizer: Emulate viewport flipping with ARB_clip_control
|
|
format_lookup_table: Drop bitfields
format_lookup_table: Use std::array for definition table
format_lookup_table: Include <limits> instead of <numeric>
|
|
Use a large flat array to look up texture formats. This allows us to
properly implement formats with different component types. It should
also be faster.
|
|
Abstracted ComponentType was not being used in a meaningful way.
This commit drops its usage.
There is one place where it was being used to test compatibility between
two cached surfaces, but this one is implied in the pixel format.
Removing the component type test doesn't change the behaviour.
|
|
|
|
|
|
|
|
|
|
shader: Implement FSWZADD and reimplement SHFL
|
|
stencil_back_func_mask and stencil_back_mask were misplaced. This commit
addresses that issue.
|
|
video_core: Treat implicit conversions as errors
|
|
Enable sign conversion warnings but don't treat them as errors.
|
|
gl_shader_cache: Fix locker constructors
|
|
|
|
|
|
GLSLDecompiler: Correct Texture Gather Offset.
|
|
Properly pass engine when a shader is being constructed from memory.
|
|
Silence GLSL compilation warnings.
|
|
|
|
|
|
|
|
This commit corrects the argument ordering in textureGatherOffset.
|
|
shader/control_flow: Abstract repeated code chunks in BRX tracking
|
|
`boost::make_iterator_range` is available when `boost/range/iterator_range.hpp` is included.
Also include `boost/icl/interval_map.hpp` and `boost/icl/interval_set.hpp`.
|