| Age | Commit message (Collapse) | Author |
|
maxwell_to_gl: Fix mipmap filtering
|
|
gl_shader_decompiler: Avoid writing output attribute when unimplemented
|
|
shader_ir/warp: Implement SHFL for Nvidia devices
|
|
shader_ir: Implement shared memory
|
|
|
|
OpenGL texture filters follow GL_<texture_filter>_MIPMAP_<mipmap_filter>
but we were using them in the opposite way.
|
|
renderer_opengl: Fix sRGB blits
|
|
|
|
|
|
|
|
Removes the sRGB hack of tracking if a frame used an sRGB rendertarget
to apply at least once to blit the final texture as sRGB. Instead of
doing this apply sRGB if the presented image has sRGB.
Also enable sRGB by default on Maxwell3D registers as some games seem to
assume this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gl_shader_cache: Remove special casing for geometry shaders
|
|
gl_rasterizer: Fix stencil testing
|
|
|
|
|
|
* Fix stencil dirty flags tracking when stencil is disabled
* Attach stencil on clears (previously it only attached depth)
* Attach stencil on drawing regardless of stencil testing being enabled
|
|
Now that ProgramVariants holds the primitive topology we no longer need
to keep track of individual geometry shaders topologies.
|
|
|
|
|
|
GLSL decompiler type system was broken. We converted all return values
to float except for some cases where returning we couldn't and
implicitly broke the rule of returning floats (e.g. for bools or bool
pairs).
Instead of doing this introduce class Expression that knows what type a
return value has and when a consumer wants to use the string it asks for
it with a required type, emitting a runtime error if types are
incompatible.
This has the disadvantage that there's more C++ code, but we can emit
better GLSL code that's easier to read.
|
|
renderer_opengl: Implement RGB565 framebuffer format
|
|
* texture_cache/surface_params: Remove unused local variable
* rasterizer_interface: Add missing documentation commentary
* maxwell_dma: Remove unused rasterizer reference
* video_core/gpu: Sort member declaration order to silent -Wreorder warning
* fermi_2d: Remove unused MemoryManager reference
* video_core: Silent unused variable warnings
* buffer_cache: Silent -Wreorder warnings
* kepler_memory: Remove unused MemoryManager reference
* gl_texture_cache: Add missing override
* buffer_cache: Add missing include
* shader/decode: Remove unused variables
|
|
RasterizerInterface was considered an incomplete object by clang.
|
|
gl_texture_cache: Miscellaneous texture buffer fixes
|
|
Implement a New LLE Buffer Cache
|
|
Implement VOTE using Nvidia's intrinsics. Documentation about these can
be found here
https://developer.nvidia.com/reading-between-threads-shader-intrinsics
Instead of using portable ARB instructions I opted to use Nvidia
intrinsics because these are the closest we have to how Tegra X1
hardware renders.
To stub VOTE on non-Nvidia drivers (including nouveau) this commit
simulates a GPU with a warp size of one, returning what is meaningful
for the instruction being emulated:
* anyThreadNV(value) -> value
* allThreadsNV(value) -> value
* allThreadsEqualNV(value) -> true
ballotARB, also known as "uint64_t(activeThreadsNV())", emits
VOTE.ANY Rd, PT, PT;
on nouveau's compiler. This doesn't match exactly to Nvidia's code
VOTE.ALL Rd, PT, PT;
Which is emulated with activeThreadsNV() by this commit. In theory this
shouldn't really matter since .ANY, .ALL and .EQ affect the predicates
(set to PT on those cases) and not the registers.
|
|
|
|
|
|
|
|
GPU: Flush commands on every dma pusher step.
|
|
Shader_Ir: Implement F16 Variants of F2F, F2I, I2F.
|
|
|
|
|
|
|
|
|
|
This commit ensures that the host gpu is constantly fed with commands to
work with, while the guest gpu keeps producing the rest of the commands.
This reduces syncing time between host and guest gpu.
|
|
Downgrade and suppress a series of GPU asserts and debug messages.
|
|
maxwell3d: Implement Conditional Rendering
|
|
gl_rasterizer: Implement compute shaders
|