| Age | Commit message (Collapse) | Author |
|
texture_cache: Implement layered framebuffer attachments
|
|
maxwell_3d: Unify draw methods
|
|
query_cache: Implement a query cache and query 21 (samples passed)
|
|
Layered framebuffer attachments is a feature that allows applications to
write attach layered textures to a single attachment. What layer the
fragments are written to is decided from the shader using gl_Layer.
|
|
Pass instanced state of a draw invocation as an argument instead of
having two separate virtual methods.
|
|
Use a custom cache instead of relying on a ranged cache.
|
|
Instead of waiting immediately for executed commands, defer the query
until the guest CPU reads it. This way we get closer to what the guest
program is doing.
To archive this we have to build a dependency queue, because host APIs
(like OpenGL and Vulkan) use ranged queries instead of counters like
NVN.
Waiting for queries implicitly uses fences and this requires a command
being queued, otherwise the driver will lock waiting until a timeout. To
fix this when there are no commands queued, we explicitly call glFlush.
|
|
Implements GL_SAMPLES_PASSED by waiting immediately for queries.
|
|
shader/decode: Fix constant buffer offsets
|
|
GPU: Refactor queries implementation and correct GPU Clock.
|
|
|
|
gl_rasterizer: Implement GL_POINT_SPRITE
|
|
|
|
|
|
maxwell_3d: Fix stencil back mask
|
|
shader/shift: Implement SHF
|
|
Some instances were using cbuf34.offset instead of cbuf34.GetOffset().
This returned the an invalid offset. Address those instances and rename
offset to "shifted_offset" to avoid future bugs.
|
|
shader/bfi: Implement register-constant buffer variant
|
|
OpenGL core defaults to GL_POINT_SPRITE, meanwhile on OpenGL
compatibility we have to explicitly enable it. This fixes
gl_PointCoord's behaviour.
|
|
shader/arithmetic: Implement FCMP
|
|
|
|
Partially implement Indexed samplers in general and specific code in GLSL
|
|
Shifts a pair of registers to the left and returns the high register.
|
|
It's the same as the variant that was implemented, but it takes the
operands from another source.
|
|
Compares the third operand with zero, then selects between the first and
second.
|
|
ATOM operates atomically on global memory. For now only add ATOM.ADD
since that's what was found in commercial games.
This asserts for ATOM.ADD.S32 (handling the others as unimplemented),
although ATOM.ADD.U32 shouldn't be any different.
This change forces us to change the default type on SPIR-V storage
buffers from float to uint. We could also alias the buffers, but it's
simpler for now to just use uint. While we are at it, abstract the code
to avoid repetition.
|
|
|
|
|
|
vk_graphics_pipeline: Set front facing properly
|
|
Front face was being forced to a certain value when cull face is
disabled. Set a default value on initialization and drop the forcefully
set front facing value with culling disabled.
|
|
gl_state: Implement PROGRAM_POINT_SIZE
|
|
|
|
This isn't used outside of the class itself, so we can make it private
for the time being.
|
|
For gl_PointSize to have effect we have to activate
GL_PROGRAM_POINT_SIZE.
|
|
This was carried from Citra and wasn't really used on yuzu. It also adds
some runtime overhead. This commit removes it from yuzu's codebase.
|
|
shader/p2r: Implement P2R Pr
|
|
shader/texture: Implement AOFFI and PTP for TLD4 and TLD4S
|
|
fixed_pipeline_state: Define structure and loaders
|
|
gl_rasterizer: Implement RASTERIZE_ENABLE
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
shader: Implement MEMBAR.GL
|
|
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.
|
|
|
|
|