Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
* 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
|
|
Nvidia defaults to wrapped shifts, but this is undefined behaviour on
OpenGL's spec. Explicitly mask/clamp according to what the guest shader
requires.
|
|
|
|
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.
|
|
|
|
We can remove this since its already a f32 value
|
|
|
|
mii: Handle logging of unknown database source
|
|
|
|
renderer_opengl: Implement RGB565 framebuffer format
|
|
shader_ir/conversion: Implement F2I and F2F F16 selector
|
|
float_set_predicate: Add missing negation bit for the second operand
|
|
maxwell_3d: Fix macro binding cursor
|
|
Port citra-emu/citra#4914: "Fix to Windows sleep issues"
|
|
Volume is a f32 value. (SwIPC describes it as a u32, but it is actually f32 as corroborated by switchbrew docs and SetAudioDeviceOutputVolume)
```cpp
const f32 volume = rp.Pop<f32>();
```
|
|
I missed this in my original PR (https://github.com/yuzu-emu/yuzu/pull/1886).
|
|
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
|
|
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
|
|
|
|
MaxwellDMA: Fixes, corrections and relaxations.
|
|
|
|
* 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
|
|
If an unmapping operation fails, we shouldn't be decrementing the amount
of memory mapped and returning that the operation was successful. We
should actually be returning the error code in this case.
|
|
MergeAdjacentVMA
Avoids potentially expensive (depending on the size of the memory block)
allocations by reserving the necessary memory before performing both
insertions. This avoids scenarios where the second insert may cause a
reallocation to occur.
|
|
Avoids an unnecessary atomic reference count increment and decrement.
|
|
Avoids needing to read the same long sequence of code in both code
paths. Also makes it slightly nicer to read and debug, as the locals
will be able to be shown in the debugger.
|
|
Same behavior, one less magic constant to read.
|
|
Assertions already log out the function name, so there's no need to
manually include the function name in the assertion strings.
|
|
RasterizerInterface was considered an incomplete object by clang.
|
|
gl_texture_cache: Miscellaneous texture buffer fixes
|
|
|
|
Implement a New LLE Buffer Cache
|
|
shader/decode: Implement S2R Tic
|
|
|
|
|
|
|
|
Fix compile error on Windows caused by #4877
Weird, I thought I saw this guard during the code review...
|
|
|
|
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.
|
|
|