summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2020-06-14Merge pull request #4070 from ogniK5377/GetTPCMasks-fixbunnei
nvdrv: Fix GetTPCMasks for ioctl3
2020-06-14Merge pull request #4069 from ogniK5377/total-phys-membunnei
kernel: Account for system resource size for memory usage
2020-06-14Merge pull request #4064 from ReinUsesLisp/invalidate-buffersbunnei
gl_rasterizer: Mark vertex buffers as dirty after buffer cache invalidation
2020-06-13Merge pull request #4049 from ReinUsesLisp/separate-samplersbunnei
shader/texture: Join separate image and sampler pairs offline
2020-06-12Merge pull request #3986 from ReinUsesLisp/shader-cachebunnei
shader_cache: Implement a generic runtime shader cache
2020-06-12Merge pull request #4010 from ogniK5377/reserve-always-breakbunnei
kernel: ResourceLimit::Reserve remove useless while loop
2020-06-10nvdrv: Fix GetTPCMasks for ioctl3David Marcec
Fixes animal crossing svcBreak on launch
2020-06-10kernel: Account for system resource size for memory usageDavid Marcec
GetTotalPhysicalMemoryAvailableWithoutSystemResource & GetTotalPhysicalMemoryUsedWithoutSystemResource seem to subtract the resource size from the usage.
2020-06-09Merge pull request #4027 from ReinUsesLisp/3d-slicesbunnei
texture_cache: Implement rendering to 3D textures
2020-06-08gl_rasterizer: Mark vertex buffers as dirty after buffer cache invalidationReinUsesLisp
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.
2020-06-08buffer_cache: Return stream buffer invalidation in Map instead of UnmapReinUsesLisp
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.
2020-06-08Merge pull request #4040 from ReinUsesLisp/nv-transform-feedbackbunnei
gl_rasterizer: Use NV_transform_feedback for XFB on assembly shaders
2020-06-08Merge pull request #4052 from ReinUsesLisp/debug-outputbunnei
renderer_opengl: Only enable DEBUG_OUTPUT when graphics debugging is enabled
2020-06-08texture_cache: Port original code management for 2D vs 3D texturesReinUsesLisp
Handle blits to images as 2D, even when they have block depth. - Fixes rendering issues on Luigi's Mansion 3
2020-06-08texture_cache: Simplify blit codeReinUsesLisp
2020-06-08texture_cache: Handle 3D texture blits with one layerReinUsesLisp
2020-06-08texture_cache: Implement rendering to 3D texturesReinUsesLisp
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.
2020-06-07Merge pull request #4034 from ReinUsesLisp/storage-texelsRodrigo Locatti
vk_rasterizer: Implement storage texels and atomic image operations
2020-06-07rasterizer_cache: Remove files and includesReinUsesLisp
The rasterizer cache is no longer used. Each cache has its own generic implementation optimized for the cached data.
2020-06-07vk_pipeline_cache: Use generic shader cacheReinUsesLisp
Trivial port the generic shader cache to Vulkan.
2020-06-07gl_shader_cache: Use generic shader cacheReinUsesLisp
Trivially port the generic shader cache to OpenGL.
2020-06-07shader_cache: Implement a generic shader cacheReinUsesLisp
Implement a generic shader cache for fast lookups and invalidations. Invalidations are cheap but expensive when a shader is invalidated. Use two mutexes instead of one to avoid locking invalidations for lookups and vice versa. When a shader has to be removed, lookups are locked as expected.
2020-06-06gl_device: Black list NVIDIA 443.24 for fast buffer uploadsReinUsesLisp
Skip fast buffer uploads on Nvidia 443.24 Vulkan beta driver on OpenGL. This driver throws the following error when calling BufferSubData or BufferData on buffers that are candidates for fast constant buffer uploads. This is the equivalens to push constants on Vulkan, except that they can access the full buffer. The error: Unknown internal debug message. The NVIDIA OpenGL driver has encountered an out of memory error. This application might behave inconsistently and fail. If this error persists on future drivers, we might have to look deeper into this issue. For now, we can black list it and log it as a temporary solution.
2020-06-05renderer_opengl: Only enable DEBUG_OUTPUT when graphics debugging is enabledReinUsesLisp
Avoids logging when it's not relevant. This can potentially reduce driver's internal thread overhead.
2020-06-05Merge pull request #4013 from ReinUsesLisp/skip-no-xfbbunnei
vk_rasterizer: Skip transform feedbacks when extension is unavailable
2020-06-05shader/texture: Join separate image and sampler pairs offlineReinUsesLisp
Games using D3D idioms can join images and samplers when a shader executes, instead of baking them into a combined sampler image. This is also possible on Vulkan. One approach to this solution would be to use separate samplers on Vulkan and leave this unimplemented on OpenGL, but we can't do this because there's no consistent way of determining which constant buffer holds a sampler and which one an image. We could in theory find the first bit and if it's in the TIC area, it's an image; but this falls apart when an image or sampler handle use an index of zero. The used approach is to track for a LOP.OR operation (this is done at an IR level, not at an ISA level), track again the constant buffers used as source and store this pair. Then, outside of shader execution, join the sample and image pair with a bitwise or operation. This approach won't work on games that truly use separate samplers in a meaningful way. For example, pooling textures in a 2D array and determining at runtime what sampler to use. This invalidates OpenGL's disk shader cache :) - Used mostly by D3D ports to Switch
2020-06-04shader/track: Move bindless tracking to a separate functionReinUsesLisp
2020-06-04Merge pull request #4031 from Morph1984/fix-gs-outputsbunnei
gl_shader_decompiler: Fix geometry shader outputs on Intel drivers
2020-06-04Merge pull request #4044 from ogniK5377/handle-not-signalled-errbunnei
Downgrade "handle not signaled" error to trace
2020-06-04Merge pull request #4009 from ogniK5377/macro-jit-prodbunnei
video_core: Implement Macro JIT
2020-06-04Downgrade "handle not signaled" error to traceDavid Marcec
clogs logs quite a bit
2020-06-04Default init labels and use initializer list for macro engineDavid Marcec
2020-06-03Merge pull request #4039 from FearlessTobi/port-5376bunnei
Port citra-emu/citra#5376: "Actually save the input when clearing/resetting to default"
2020-06-03gl_rasterizer: Use NV_transform_feedback for XFB on assembly shadersReinUsesLisp
NV_transform_feedback, NV_transform_feedback2 and ARB_transform_feedback3 with NV_transform_feedback interactions allows implementing transform feedbacks as dynamic state. Maxwell implements transform feedbacks as dynamic state, so using these extensions with TransformFeedbackStreamAttribsNV allows us to properly emulate transform feedbacks without having to recompile shaders when the state changes.
2020-06-03Merge pull request #4012 from ReinUsesLisp/mipmap-overlapsbunnei
texture_cache: Handle overlaps with multiple subresources
2020-06-03Mark parameters as constDavid Marcec
2020-06-03Actually save the input when clearing/resetting to defaultFearlessTobi
Co-Authored-By: xperia64 <xperiancedapps@gmail.com>
2020-06-02Merge pull request #4014 from ReinUsesLisp/astc-nvidiabunnei
gl_device: Avoid devices with CAVEAT_SUPPORT on ASTC
2020-06-02Merge pull request #4032 from VolcaEM/xpadbunnei
hid: Stub GetXpadIDs
2020-06-02Merge pull request #4006 from ReinUsesLisp/squash-ubosbunnei
glsl: Squash constant buffers into a single SSBO when we hit the limit
2020-06-02Merge pull request #4016 from ReinUsesLisp/invocation-infoLC
shader/other: Fix hardcoded value in S2R INVOCATION_INFO
2020-06-02Merge pull request #4033 from ReinUsesLisp/vk-r16uiLC
maxwell_to_vk: Add R16UI image format
2020-06-02Pass by reference instead of copying parametersDavid Marcec
2020-06-02vk_shader_decompiler: Implement atomic image operationsReinUsesLisp
Implement atomic operations on images. On GLSL these are atomicImage* functions (e.g. atomicImageAdd).
2020-06-02vk_rasterizer: Implement storage texelsReinUsesLisp
This is the equivalent of an image buffer on OpenGL. - Used by Octopath Traveler
2020-06-02maxwell_to_vk: Add R16UI image formatReinUsesLisp
- Used by Octopath Traveler
2020-06-01Merge pull request #4001 from ReinUsesLisp/avoid-copiesbunnei
buffer_cache: Avoid copying twice on certain cases
2020-06-01Merge pull request #3998 from ReinUsesLisp/init-3dbunnei
maxwell_3d: Initialize more registers to their expected value
2020-06-01gl_shader_decompiler: Declare gl_Layer and gl_ViewportIndex within ↵Morph
gl_PerVertex for vertex and tessellation shaders
2020-06-01gl_shader_decompiler: Fix geometry shader outputs for Intel driversMorph
On Intel's proprietary drivers, gl_Layer and gl_ViewportIndex are not allowed members of gl_PerVertex block, causing the shader to fail to compile. Fix this by declaring these variables outside of gl_PerVertex.