makigumo
f91046bf8d
vk_shader_decompiler: fix linux build
6 years ago
bunnei
c5afe93dcc
renderer_opengl: Keep presentation frames in lock-step when GPU debugging.
- Fixes renderdoc with OpenGL renderer.
6 years ago
bunnei
4373fa8042
gl_device: Add option to check GL_EXT_debug_tool.
6 years ago
Fernando Sahmkow
27cbb75e7c
PageTable: move backing addresses to a children class as the CPU page table does not need them.
This PR aims to reduce the memory usage in the CPU page table by moving
GPU specific parameters into a child class. This saves 1Gb of Memory for
most games.
6 years ago
Nguyen Dac Nam
3287b1247d
clang-format
6 years ago
Nguyen Dac Nam
240d45830d
nit
6 years ago
ReinUsesLisp
69c7a01f88
vk/gl_shader_decompiler: Silence assertion on compute
6 years ago
ReinUsesLisp
62560f1e63
vk_shader_decompiler: Fix default varying regression
6 years ago
ReinUsesLisp
afebdda203
maxwell_3d: Add padding words to XFB entries
Use INSERT_UNION_PADDING_WORDS instead of alignas to ensure a size
requirement.
6 years ago
ReinUsesLisp
4bc4851d45
gl_shader_decompiler: Fix implicit conversion errors
6 years ago
Rodrigo Locatti
47459f6a36
vk_shader_decompiler: Fix implicit type conversion
Co-Authored-By: Mat M. <mathew1800@gmail.com>
6 years ago
ReinUsesLisp
2fae1e6205
vk_rasterizer: Implement transform feedback binding zero
6 years ago
ReinUsesLisp
b67360c0f8
vk_shader_decompiler: Add XFB decorations to generic varyings
6 years ago
ReinUsesLisp
8d5bdcb17b
vk_device: Enable VK_EXT_transform_feedback when available
6 years ago
ReinUsesLisp
c320702092
vk_device: Shrink formatless capability name size
6 years ago
ReinUsesLisp
ae6189d7c2
shader/transform_feedback: Expose buffer stride
6 years ago
ReinUsesLisp
7acebd7eb6
vk_shader_decompiler: Use registry for specialization
6 years ago
ReinUsesLisp
8e9f23f393
gl_rasterizer: Implement transform feedback bindings
6 years ago
ReinUsesLisp
4d711dface
gl_shader_decompiler: Decorate output attributes with XFB layout
We sometimes have to slice attributes in different parts. This is needed
for example in instances where the game feedbacks 3 components but
writes 4 from the shader (something that is possible with
GL_NV_transform_feedback).
6 years ago
ReinUsesLisp
3dcaa84ba4
shader/transform_feedback: Add host API friendly TFB builder
6 years ago
makigumo
753bc2026f
fix formatting
6 years ago
makigumo
54681909be
maxwell_to_vk: add vertex format eA2B10G10R10UnormPack32
6 years ago
Nguyen Dac Nam
00607fe1e0
clang-format
6 years ago
Nguyen Dac Nam
325977c0c6
Apply suggestions from code review
Co-Authored-By: Mat M. <mathew1800@gmail.com>
6 years ago
Nguyen Dac Nam
70ff82f72d
shader_decode: BFE add ref of reverse parallel method.
6 years ago
Nguyen Dac Nam
96a4abe12d
shader_decode: implement BREV on BFE
Implement reverse parallel follow: https://graphics.stanford.edu/~seander/bithacks.html#ReverseParallel
6 years ago
Nguyen Dac Nam
93547cac68
shader_bytecode: update BFE instructions struct.
6 years ago
Nguyen Dac Nam
911c56ccef
node_helper: add IBitfieldExtract case
6 years ago
Nguyen Dac Nam
465ba30d08
shader_decode: Reimplement BFE instructions
6 years ago
ReinUsesLisp
e24197bb3f
gl_shader_decompiler: Initialize gl_Position on vertex shaders
6 years ago
ReinUsesLisp
3a10016e38
gl_shader_decompiler: Add missing {} on smem GLSL emission
6 years ago
ReinUsesLisp
e22816a5bb
texture_cache: Report incompatible textures as black
Some games bind incompatible texture types to certain types.
For example Astral Chain binds a 2D texture with 1 layer (non-array) to
a cubemap slot (that's how it's used in the shader). After testing this
in hardware, the expected "undefined behavior" is to report all pixels
as black.
We already have a path for reporting black textures in the texture
cache. When textures types are incompatible, this commit binds these
kind of textures. This is done on the API agnostic texture cache so no
extra code has to be inserted on OpenGL or Vulkan.
As a side effect, this fixes invalidations of ASTC textures on Astral
Chain. This happened because yuzu detected a cube texture and forced
6 faces, generating a texture larger than what the TIC reported.
6 years ago
ReinUsesLisp
daae6a323b
texture_cache/surface_params: Force depth=1 on 2D textures
Sometimes games will sample a 2D array TIC with a 2D access in the
shader. This causes bad interactions with the rest of the texture cache.
To emulate what the game wants to do, force a depth=1 on 2D textures
(not 2D arrays) and let the texture cache handle the rest.
6 years ago
Fernando Sahmkow
95b804ff05
NVFlinger: Do the microprofile Flip after processing a valid frame.
6 years ago
ReinUsesLisp
825d629565
gl_shader_decompiler: Fix regression in render target declarations
A previous commit introduced a way to declare as few render targets as
possible. Turns out this introduced a regression in some games.
6 years ago
Vitor Kiguchi
e891ff9a0c
framebuffer_layout.h: drop the use of enum for screen dimensions.
+clang format
6 years ago
ReinUsesLisp
8357908099
gl_shader_manager: Fix interaction between graphics and compute
After a compute shader was set to the pipeline, no graphics shader was
invoked again. To address this use glUseProgram to bind compute shaders
(without state tracking) and call glUseProgram(0) when transitioning out
of it back to the graphics pipeline.
6 years ago
ReinUsesLisp
e4bc3c3342
gl_rasterizer: Implement polygon modes and fill rectangles
6 years ago
ReinUsesLisp
eb5861e0a2
engines/maxwell_3d: Add TFB registers and store them in shader registry
6 years ago
ReinUsesLisp
b1acb4f73f
shader/registry: Address feedback
6 years ago
ReinUsesLisp
b1061afed9
gl_shader_decompiler: Add identifier to decompiled code
6 years ago
ReinUsesLisp
e612242977
gl_shader_decompiler: Roll back to GLSL core 430
RenderDoc won't build shaders if we use GLSL compatibility.
6 years ago
ReinUsesLisp
978172530e
const_buffer_engine_interface: Store component types
This is required for Vulkan. Sampling integer textures with float
handles is illegal.
6 years ago
ReinUsesLisp
120f688272
yuzu/loading_screen: Remove unused shader progress mode
6 years ago
ReinUsesLisp
e1932351a9
gl_shader_cache: Reduce registry consistency to debug assert
Registry consistency is something that practically can't happen and it
has a measurable runtime cost. Reduce it to a DEBUG_ASSERT.
6 years ago
ReinUsesLisp
66a8a3e887
shader/registry: Cache tessellation state
6 years ago
ReinUsesLisp
0528be5c92
shader/registry: Store graphics and compute metadata
Store information GLSL forces us to provide but it's dynamic state in
hardware (workgroup sizes, primitive topology, shared memory size).
6 years ago
ReinUsesLisp
e8efd5a901
video_core: Rename "const buffer locker" to "registry"
6 years ago
ReinUsesLisp
bd8b9bbcee
gl_shader_cache: Rework shader cache and remove post-specializations
Instead of pre-specializing shaders and then post-specializing them,
drop the later and only "specialize" the shader while decoding it.
6 years ago
ReinUsesLisp
1aa75b1081
textures: Fix anisotropy hack
Previous code could generate an anisotropy value way higher than x16.
6 years ago