Age | Commit message (Collapse) | Author |
|
|
|
VkDeviceSize
|
|
|
|
* boost::hash_value returns a size_t
* boost::hash_combine takes a size_t& argument
|
|
macOS header files #define PAGE_SHIFT
|
|
gl_device: Reserve 4 image bindings for fragment stage
|
|
|
|
|
|
|
|
xbyak_abi: Cleanup
|
|
macro_jit_x64: Cleanup
|
|
gl_arb_decompiler: Implement an assembly shader decompiler
|
|
yuzu/frontend: Remove internal resolution option
|
|
Due to the limitation of GL_MAX_IMAGE_UNITS being low (8) on Intel's and Nvidia's proprietary drivers, we have to reserve an appropriate amount of image bindings for each of the stages. So far games have been observed to use 4 image bindings on the fragment stage (Kirby Star Allies) and 1 on the vertex stage (TWD series).
No games thus far in my limited testing used more than 4 images concurrently and across all currently active programs.
This fixes shader compilation errors on Kirby Star Allies on OpenGL (GLSL/GLASM)
|
|
buffer_cache: Avoid passing references of shared pointers and misc style changes
|
|
Not required, as PARAMETERS can just be incremented directly.
|
|
|
|
All registers are now callee-save registers.
RBX and RBP selected for STATE and RESULT because these are most commonly accessed; this is to avoid the REX prefix.
RBP not used for STATE because there are some SIB restrictions, RBX emits smaller code.
|
|
Unnecessary since this is just an offset from STATE.
|
|
This can be passed in as an argument instead.
|
|
Unnecessary variable.
|
|
This Reg64 codepath has the exact same behaviour as the Reg32 one.
|
|
ABI_CalculateFrameSize
|
|
|
|
|
|
Pushing GPRs twice.
|
|
Fix build time issues on gcc. Confirmed through asan that avoiding this
initialization is safe.
|
|
nvdrv: Fix GetTPCMasks for ioctl3
|
|
kernel: Account for system resource size for memory usage
|
|
gl_rasterizer: Mark vertex buffers as dirty after buffer cache invalidation
|
|
shader/texture: Join separate image and sampler pairs offline
|
|
shader_cache: Implement a generic runtime shader cache
|
|
kernel: ResourceLimit::Reserve remove useless while loop
|
|
|
|
Emit code compatible with NV_gpu_program5.
This should emit code compatible with Fermi, but it wasn't tested on
that architecture. Pascal has some issues not present on Turing GPUs.
|
|
|
|
Fixes animal crossing svcBreak on launch
|
|
GetTotalPhysicalMemoryAvailableWithoutSystemResource & GetTotalPhysicalMemoryUsedWithoutSystemResource seem to subtract the resource size from the usage.
|
|
texture_cache: Implement rendering to 3D textures
|
|
Instead of using as template argument a shared pointer, use the
underlying type and manage shared pointers explicitly. This can make
removing shared pointers from the cache more easy.
While we are at it, make some misc style changes and general
improvements (like insert_or_assign instead of operator[] + operator=).
|
|
Vertex buffers bindings become invalid after the stream buffer is
invalidated. We were originally doing this, but it got lost at some
point.
- Fixes Animal Crossing: New Horizons, but it affects everything.
|
|
We have to invalidate whatever cache is being used before uploading the
data, hence it makes more sense to return this on Map instead of Unmap.
|
|
gl_rasterizer: Use NV_transform_feedback for XFB on assembly shaders
|
|
renderer_opengl: Only enable DEBUG_OUTPUT when graphics debugging is enabled
|
|
Handle blits to images as 2D, even when they have block depth.
- Fixes rendering issues on Luigi's Mansion 3
|
|
|
|
|
|
This allows rendering to 3D textures with more than one slice.
Applications are allowed to render to more than one slice of a texture
using gl_Layer from a VTG shader.
This also requires reworking how 3D texture collisions are handled, for
now, this commit allows rendering to slices but not to miplevels. When a
render target attempts to write to a mipmap, we fallback to the previous
implementation (copying or flushing as needed).
- Fixes color correction 3D textures on UE4 games (rainbow effects).
- Allows Xenoblade games to render to 3D textures directly.
|
|
vk_rasterizer: Implement storage texels and atomic image operations
|
|
The rasterizer cache is no longer used. Each cache has its own generic
implementation optimized for the cached data.
|