bunnei
896b6769d2
Merge pull request #2074 from ReinUsesLisp/shader-ir-unify-offset
...
shader_ir: Unify constant buffer offset values
2019-02-01 13:24:04 -05:00
bunnei
26a37f8ae9
Merge pull request #2067 from ReinUsesLisp/workaround-fb
...
gl_rasterizer: Workaround invalid zeta clears
2019-02-01 12:50:09 -05:00
ReinUsesLisp
14098c39af
rasterizer_interface: Remove unused AccelerateFill operation
2019-02-01 03:02:22 -03:00
ReinUsesLisp
74a039d0bc
video_core: Remove unused Fill surface type
2019-02-01 02:57:47 -03:00
bunnei
6fb1297325
Merge pull request #1485 from FernandoS27/render-info
...
Add more info into textures' object labels
2019-01-30 12:35:56 -05:00
ReinUsesLisp
12fbe5dcf8
shader_ir: Unify constant buffer offset values
...
Constant buffer values on the shader IR were using different offsets if
the access direct or indirect. cbuf34 has a non-multiplied offset while
cbuf36 does. On shader decoding this commit multiplies it by four on
cbuf34 queries.
2019-01-30 02:45:50 -03:00
bunnei
d0219e0512
Merge pull request #2070 from ReinUsesLisp/cubearray-view
...
gl_shader_cache: Fix texture view for cubemaps as cubemap arrays
2019-01-29 22:27:08 -05:00
ReinUsesLisp
5649c48967
gl_shader_cache: Use explicit bindings
2019-01-30 00:11:02 -03:00
ReinUsesLisp
ea24bd3c2a
gl_rasterizer: Implement global memory management
2019-01-30 00:00:15 -03:00
ReinUsesLisp
d516c50fe2
shader_decode: Implement LDG and basic cbuf tracking
2019-01-30 00:00:15 -03:00
ReinUsesLisp
2a94d36231
gl_shader_cache: Fix texture view for cubemaps as cubemap arrays
...
Cubemaps are considered layered and to create a texture view the texture
mustn't be a layered texture, resulting in cubemaps being bound as
cubemap arrays. To fix this issue this commit introduces an extra
surface parameter called "is_array" and uses this to query for texture
view creation.
Now that texture views for cubemaps are actually being created, this
also fixes the number of layers created for the texture view (since they
have to be 6 to create a texture view of cubemaps).
2019-01-29 23:49:02 -03:00
ReinUsesLisp
b12f08a7f7
gl_rasterizer: Workaround invalid zeta clears
...
Some games (like Xenoblade Chronicles 2) clear both depth and stencil
buffers while there's a depth-only texture attached (e.g. D16 Unorm).
This commit reads the zeta format of the bound surface on
ConfigureFramebuffers and returns if depth and/or stencil attachments
were set. This is ignored on DrawArrays but on Clear it's used to just
clear those attachments, bypassing an OpenGL error.
2019-01-29 23:47:33 -03:00
bunnei
b1a4671770
Merge pull request #1927 from ReinUsesLisp/shader-ir
...
video_core: Replace gl_shader_decompiler with an IR based decompiler
2019-01-25 23:42:14 -05:00
bunnei
674ebdda6a
frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl.
2019-01-23 19:19:23 -05:00
ReinUsesLisp
fdb76f6147
maxwell_3d: Set rt_separate_frag_data to 1 by default
...
Commercial games assume that this value is 1 but they never set it. On
the other hand nouveau manually sets this register. On
ConfigureFramebuffers we were asserting for what we are actually
implementing (according to envytools).
2019-01-22 04:14:29 -03:00
bunnei
eea45eb2ab
Merge pull request #2008 from ReinUsesLisp/dirty-framebuffers
...
gl_rasterizer_cache: Use dirty flags for framebuffers
2019-01-20 14:06:26 -05:00
bunnei
42e3e0cfee
Merge pull request #2002 from ReinUsesLisp/dsa-vao-buffer
...
gl_rasterizer: Use DSA for VAOs and buffers
2019-01-20 14:06:01 -05:00
ReinUsesLisp
189c792193
gl_rasterizer: Silent unsafe mix warning
2019-01-18 03:25:28 -03:00
ReinUsesLisp
4388b8cee0
gl_shader_decompiler: replace std::get<> with std::get_if<> for macOS compatibility
2019-01-15 17:54:53 -03:00
ReinUsesLisp
ddbc441989
gl_shader_decompiler: Inline textureGather component
2019-01-15 17:54:53 -03:00
ReinUsesLisp
c75f5c634a
shader_ir: Remove composite primitives and use temporals instead
2019-01-15 17:54:53 -03:00
ReinUsesLisp
960b0f653a
gl_shader_decompiler: Fixup AssignCompositeHalf
2019-01-15 17:54:53 -03:00
ReinUsesLisp
92610e9705
shader_decode: Use proper primitive names
2019-01-15 17:54:53 -03:00
ReinUsesLisp
44fce20a01
shader_decode: Use BitfieldExtract instead of shift + and
2019-01-15 17:54:53 -03:00
ReinUsesLisp
26d519c0f6
shader_ir: Remove Ipa primitive
2019-01-15 17:54:53 -03:00
ReinUsesLisp
0a9aa9f8db
gl_shader_decompiler: Use rasterizer's UBO size limit
2019-01-15 17:54:53 -03:00
ReinUsesLisp
16dee3d290
gl_shader_gen: Fixup code formatting
2019-01-15 17:54:53 -03:00
ReinUsesLisp
685996eabb
video_core: Rename glsl_decompiler to gl_shader_decompiler
2019-01-15 17:54:53 -03:00
ReinUsesLisp
d08982ed56
glsl_decompiler: Fixup geometry shaders
2019-01-15 17:54:53 -03:00
ReinUsesLisp
0b1a2a74b6
video_core: Implement IR based geometry shaders
2019-01-15 17:54:53 -03:00
ReinUsesLisp
19ca02d47b
video_core: Replace gl_shader_decompiler
2019-01-15 17:54:50 -03:00
ReinUsesLisp
4495d76090
gl_rasterizer: Workaround Intel VAO DSA bug
...
There is a bug on Intel's blob driver where it fails to properly build a
vertex array object if it's not bound even after creating it with
glCreateVertexArrays. This workaround binds it after creating it to
bypass the issue.
2019-01-09 02:40:19 -03:00
ReinUsesLisp
0bde2e5fc1
gl_global_cache: Add dummy global cache manager
2019-01-08 17:47:45 -03:00
ReinUsesLisp
33e53c7893
gl_rasterizer: Skip framebuffer configuration if rendertargets have not been changed
2019-01-07 16:23:23 -03:00
bunnei
05929b3674
Merge pull request #1999 from ReinUsesLisp/dirty-shader
...
gl_shader_cache: Use dirty flags for shaders
2019-01-07 14:22:30 -05:00
ReinUsesLisp
1c8411dc8d
gl_rasterizer_cache: Use dirty flags for the depth buffer
2019-01-07 16:22:28 -03:00
ReinUsesLisp
6e932fe118
gl_rasterizer_cache: Use dirty flags for color buffers
2019-01-07 16:20:39 -03:00
ReinUsesLisp
5fec808e30
gl_shader_cache: Use dirty flags for shaders
2019-01-07 16:13:12 -03:00
ReinUsesLisp
a17b13ac37
gl_stream_buffer: Use DSA for buffer management
2019-01-06 16:49:24 -03:00
ReinUsesLisp
fe889fb55b
gl_rasterizer: Use DSA for vertex array objects
2019-01-06 16:49:24 -03:00
ReinUsesLisp
5ba137cdfe
gl_state: Drop uniform buffer state tracking
2019-01-06 00:28:01 -03:00
ReinUsesLisp
8536bb5cfe
gl_rasterizer_cache: Use GL_STREAM_COPY for PBOs
...
Since the data is doing the path CPU -> GPU -> GPU copy is the most
approximate hint. Using GL_STREAM_DRAW generated a performance warning
on Nvidia's stack. Changing this hint removed the warning.
2019-01-05 02:27:55 -03:00
bunnei
676d302ef4
Merge pull request #1961 from ReinUsesLisp/tex-view-2d
...
gl_rasterizer_cache: Texture view if shader samples array but OGL is not
2019-01-02 17:51:32 -05:00
ReinUsesLisp
dec2113a73
gl_rasterizer_cache: Texture view if shader samples array but OGL is not
...
When a shader samples a texture array but that texture in OpenGL is
created without layers, use a texture view to increase the texture
hierarchy. For example, instead of binding a GL_TEXTURE_2D bind a
GL_TEXTURE_2D_ARRAY view.
2018-12-29 23:49:12 -03:00
bunnei
82662f374a
gpu: Remove PixelFormat G8R8U and G8R8S, as they do not seem to exist.
...
- Fixes UI rendering issues in The Legend of Zelda: Breath of the Wild.
2018-12-28 15:36:45 -05:00
Rodolfo Bogado
aa86cd851e
Add missing uintBitsToFloat to SetRegisterToHalfFloat
2018-12-27 14:39:10 -03:00
bunnei
dad1c81676
Merge pull request #1892 from Tinob/master
...
Improve Zero flag implementation
2018-12-27 11:06:59 -05:00
Lioncash
21dec95072
renderer_opengl: Correct forward declaration of FramebufferLayout
...
This is actually a struct, not a class, which can lead to compilation
warnings.
2018-12-26 17:32:32 -05:00
Rodolfo Bogado
50a48fe118
Apply CC test to the final value to be stored in the register
2018-12-26 18:16:31 -03:00
David
615a0df6b6
Fixed shader linking error due to TLDS ( #1934 )
...
* Fixed shader linking error due to TLDS
coord should be coords
* Fix remaining coords
2018-12-26 15:55:39 -05:00