ReinUsesLisp
0d1d755086
shader/track: Search inside of conditional nodes
...
Some games search conditionally use global memory instructions. This
allows the heuristic to search inside conditional nodes for the source
constant buffer.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
42b75e8be8
shader_ir: Rename BasicBlock to NodeBlock
...
It's not always used as a basic block. Rename it for consistency.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
6a6fabea58
shader_ir: Pass decoded nodes as a whole instead of per basic blocks
...
Some games call LDG at the top of a basic block, making the tracking
heuristic to fail. This commit lets the heuristic the decoded nodes as a
whole instead of per basic blocks.
This may lead to some false positives but allows it the heuristic to
track cases it previously couldn't.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
2bdbb90af7
video_core: Assert on invalid GPU to CPU address queries
2019-02-03 04:58:40 -03:00
ReinUsesLisp
04e68e9738
maxwell_3d: Allow sampler handles with TSC id zero
2019-02-03 04:58:40 -03:00
ReinUsesLisp
390721a561
maxwell_3d: Allow texture handles with TIC id zero
...
Also remove "enabled" field from Tegra::Texture::FullTextureInfo because
it would become unused.
2019-02-03 04:58:24 -03:00
ReinUsesLisp
e01a9de35f
memory_manager: Check for reserved page status
2019-02-03 04:58:24 -03:00
ReinUsesLisp
f61c1ed246
shader_ir/memory: Add LD_L 128 bits loads
2019-02-03 00:35:34 -03:00
ReinUsesLisp
9feb68085d
shader_bytecode: Rename BytesN enums to BitsN
2019-02-03 00:25:40 -03:00
ReinUsesLisp
0be835132c
shader_ir/memory: Add LD_L 64 bits loads
2019-02-03 00:25:40 -03:00
bunnei
eceab45dac
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
2d226ff8ac
Merge pull request #2067 from ReinUsesLisp/workaround-fb
...
gl_rasterizer: Workaround invalid zeta clears
2019-02-01 12:50:09 -05:00
ReinUsesLisp
26f8a700a7
rasterizer_interface: Remove unused AccelerateFill operation
2019-02-01 03:02:22 -03:00
ReinUsesLisp
13222f94c0
video_core: Remove unused Fill surface type
2019-02-01 02:57:47 -03:00
ReinUsesLisp
3e80b08944
gl_rasterizer_cache: Fixup test clause
2019-01-30 19:10:35 -03:00
Mat M
911587fb8d
gl_rasterizer_cache: Guard clause swizzle testing
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-01-30 19:10:35 -03:00
ReinUsesLisp
220df45b7d
gl_state: Remove texture target tracking
2019-01-30 19:10:35 -03:00
ReinUsesLisp
704744bb72
gl_rasterizer_cache: Move swizzling to textures instead of state
2019-01-30 19:10:35 -03:00
ReinUsesLisp
3bbaa98c78
gl_state: Use DSA and multi bind to update texture bindings
2019-01-30 19:10:11 -03:00
ReinUsesLisp
4b676e7786
gl_rasterizer: Use DSA for textures
2019-01-30 19:10:11 -03:00
Hexagon12
35480167b1
Merge pull request #2076 from lioncash/enc
...
video_core/dma_pusher: Silence C4828 warnings
2019-01-30 19:42:15 +02:00
Lioncash
0b594f3344
video_core/dma_pusher: Silence C4828 warnings
...
This was previously causing:
warning C4828: The file contains a character starting at offset 0xa33
that is illegal in the current source character set (codepage 65001).
warnings on Windows when compiling yuzu.
2019-01-30 12:36:31 -05:00
bunnei
92b18345a8
Merge pull request #1485 from FernandoS27/render-info
...
Add more info into textures' object labels
2019-01-30 12:35:56 -05:00
ReinUsesLisp
477d616f7d
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
3c3d9afd61
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
52c326c301
gl_shader_cache: Use explicit bindings
2019-01-30 00:11:02 -03:00
ReinUsesLisp
9f803299de
gl_rasterizer: Implement global memory management
2019-01-30 00:00:15 -03:00
ReinUsesLisp
3b84e04af1
shader_decode: Implement LDG and basic cbuf tracking
2019-01-30 00:00:15 -03:00
Kevin
ba38d91fe2
video_core/GPU Implemented the GPU PFIFO puller semaphore operations. ( #1908 )
...
* Implemented the puller semaphore operations.
* Nit: Fix 2 style issues
* Nit: Add Break to default case.
* Fix style.
* Update for comments. Added ReferenceCount method
* Forgot to remove GpuSmaphoreAddress union.
* Fix the clang-format issues.
* More clang formatting.
* two more white spaces for the Clang formatting.
* Move puller members into the regs union
* Updated to use Memory::WriteBlock instead of Memory::Write*
* Fix clang style issues
* White space clang error
* Removing unused funcitons and other pr comment
* Removing unused funcitons and other pr comment
* More union magic for setting regs value.
* union magic refcnt as well
* Remove local var
* Set up the regs and regs_assert_positions up properly
* Fix clang error
2019-01-29 21:49:18 -05:00
ReinUsesLisp
f58a6152fc
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
07692230ca
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
Lioncash
b2b98b2f44
shader/shader_ir: Amend three comment typos
...
Given we're in the area, these are three trivial typos that can be
corrected.
2019-01-28 07:52:04 -05:00
Lioncash
62e08c30b7
shader/shader_ir: Amend constructor initializer ordering for AbufNode
...
Orders the class members in the same order that they would actually be
initialized in. Gets rid of two compiler warnings.
2019-01-28 07:50:34 -05:00
Lioncash
3e1a9a45a6
shader/decode: Avoid a pessimizing std::move within DecodeRange()
...
std::moveing a local variable in a return statement has the potential to
prevent copy elision from occurring, so this can just be converted into
a regular return.
2019-01-28 07:43:23 -05:00
ReinUsesLisp
fc6d46c374
video_core: Silent implicit conversion warning
2019-01-26 02:27:14 -03:00
bunnei
1f4ca1e841
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
045b0b70b6
frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl.
2019-01-23 19:19:23 -05:00
ReinUsesLisp
9a82dec74a
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
James Rowe
ea73ffe202
Rename step 1 and step 2 to be a little more descriptive
2019-01-20 18:40:25 -07:00
James Rowe
e8bd6b1fcc
QT: Upgrade the Loading Bar to look much better
2019-01-20 14:47:35 -07:00
bunnei
197d0d9d24
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
cbf8bea9d5
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
a1b1ea47ed
gl_rasterizer: Silent unsafe mix warning
2019-01-18 03:25:28 -03:00
ReinUsesLisp
a63d7c49fc
shader_ir: Fixup clang build
2019-01-15 21:06:05 -03:00
ReinUsesLisp
1e40a4b343
gl_shader_decompiler: replace std::get<> with std::get_if<> for macOS compatibility
2019-01-15 17:54:53 -03:00
ReinUsesLisp
51de4e00a6
gl_shader_decompiler: Inline textureGather component
2019-01-15 17:54:53 -03:00
ReinUsesLisp
1c9c4eefeb
shader_decode: Fixup XMAD
2019-01-15 17:54:53 -03:00
ReinUsesLisp
170c8212bb
shader_ir: Pass to decoder functions basic block's code
2019-01-15 17:54:53 -03:00
ReinUsesLisp
2d6c064e66
shader_decode: Improve zero flag implementation
2019-01-15 17:54:53 -03:00
ReinUsesLisp
d911740e5d
shader_ir: Remove composite primitives and use temporals instead
2019-01-15 17:54:53 -03:00
ReinUsesLisp
bb12f99b20
gl_shader_decompiler: Fixup AssignCompositeHalf
2019-01-15 17:54:53 -03:00
ReinUsesLisp
50195b1704
shader_decode: Use proper primitive names
2019-01-15 17:54:53 -03:00
ReinUsesLisp
2faad9bf23
shader_decode: Use BitfieldExtract instead of shift + and
2019-01-15 17:54:53 -03:00
ReinUsesLisp
52223313b1
shader_ir: Remove Ipa primitive
2019-01-15 17:54:53 -03:00
ReinUsesLisp
d6b173d5fe
gl_shader_decompiler: Use rasterizer's UBO size limit
2019-01-15 17:54:53 -03:00
ReinUsesLisp
df74ff3c8b
gl_shader_gen: Fixup code formatting
2019-01-15 17:54:53 -03:00
ReinUsesLisp
af5d7e2c49
video_core: Rename glsl_decompiler to gl_shader_decompiler
2019-01-15 17:54:53 -03:00
ReinUsesLisp
d9118d324a
shader_ir: Remove RZ and use Register::ZeroIndex instead
2019-01-15 17:54:53 -03:00
ReinUsesLisp
5af82a8ed4
shader_decode: Implement TEXS.F16
2019-01-15 17:54:53 -03:00
ReinUsesLisp
c68c13e1aa
shader_decode: Fixup R2P
2019-01-15 17:54:53 -03:00
ReinUsesLisp
8b5588e776
glsl_decompiler: Fixup TLDS
2019-01-15 17:54:53 -03:00
ReinUsesLisp
dbed6c6485
glsl_decompiler: Fixup geometry shaders
2019-01-15 17:54:53 -03:00
ReinUsesLisp
ea78c78253
shader_decode: Fixup WriteLogicOperation zero comparison
2019-01-15 17:54:53 -03:00
ReinUsesLisp
ab7f52b279
glsl_decompiler: Fixup permissive member function declarations
2019-01-15 17:54:53 -03:00
ReinUsesLisp
55a10d02e5
shader_decode: Fixup PSET
2019-01-15 17:54:53 -03:00
ReinUsesLisp
a2e22b4359
shader_decode: Fixup clang-format
2019-01-15 17:54:53 -03:00
ReinUsesLisp
e1fea1e0c5
video_core: Implement IR based geometry shaders
2019-01-15 17:54:53 -03:00
ReinUsesLisp
a1b845b651
shader_decode: Implement VMAD and VSETP
2019-01-15 17:54:53 -03:00
ReinUsesLisp
b11e0b94c7
shader_decode: Implement HSET2
2019-01-15 17:54:53 -03:00
ReinUsesLisp
2df55985b6
shader_decode: Rework HSETP2
2019-01-15 17:54:53 -03:00
ReinUsesLisp
8332482c24
shader_decode: Implement R2P
2019-01-15 17:54:53 -03:00
ReinUsesLisp
3f1136ac6f
shader_decode: Implement CSETP
2019-01-15 17:54:52 -03:00
ReinUsesLisp
7e13e8bfcb
shader_decode: Implement PSET
2019-01-15 17:54:52 -03:00
ReinUsesLisp
dd91650aaf
shader_decode: Implement HFMA2
2019-01-15 17:54:52 -03:00
ReinUsesLisp
d6f76307fe
glsl_decompiler: Remove HNegate inlining
2019-01-15 17:54:52 -03:00
ReinUsesLisp
027f443e69
shader_decode: Implement POPC
2019-01-15 17:54:52 -03:00
ReinUsesLisp
55e6786254
shader_decode: Implement TLDS (untested)
2019-01-15 17:54:52 -03:00
ReinUsesLisp
ec98e4d842
shader_decode: Update TLD4 reflecting #1862 changes
2019-01-15 17:54:52 -03:00
ReinUsesLisp
03e088a4f4
shader_ir: Fixup TEX and TEXS and partially fix TLD4 decompiling
2019-01-15 17:54:52 -03:00
ReinUsesLisp
2d9136cec6
shader_decode: Fixup FSET
2019-01-15 17:54:52 -03:00
ReinUsesLisp
af5c6e4ccb
shader_decode: Implement IADD32I
2019-01-15 17:54:52 -03:00
ReinUsesLisp
4316eaf75c
shader_decode: Fixup clang-format
2019-01-15 17:54:52 -03:00
ReinUsesLisp
fc46ecddb3
video_core: Return safe values after an assert hits
2019-01-15 17:54:52 -03:00
ReinUsesLisp
148a6418ed
shader_decode: Implement FFMA
2019-01-15 17:54:52 -03:00
ReinUsesLisp
21aff36459
video_core: Address feedback
2019-01-15 17:54:52 -03:00
ReinUsesLisp
59b34b1d76
shader_ir: Fixup file inclusions and clang-format
2019-01-15 17:54:52 -03:00
Mat M
57a900cc45
shader_ir: Move comment node string
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-01-15 17:54:52 -03:00
ReinUsesLisp
d4fae3a699
shader_ir: Address feedback to avoid UB in bit casting
2019-01-15 17:54:52 -03:00
ReinUsesLisp
946c86f0bb
shader_decode: Fixup clang-format
2019-01-15 17:54:52 -03:00
ReinUsesLisp
c9cf899d18
shader_decode: Implement LEA
2019-01-15 17:54:52 -03:00
ReinUsesLisp
4fd06efeb9
shader_decode: Implement IADD3
2019-01-15 17:54:52 -03:00
ReinUsesLisp
a40fd07516
shader_decode: Implement LOP3
2019-01-15 17:54:52 -03:00
ReinUsesLisp
b184ca9089
shader_decode: Implement ST_L
2019-01-15 17:54:52 -03:00
ReinUsesLisp
8d42feb09b
shader_decode: Implement LD_L
2019-01-15 17:54:52 -03:00
ReinUsesLisp
21f9e9da09
shader_decode: Implement HSETP2
2019-01-15 17:54:52 -03:00
ReinUsesLisp
68c99d2597
shader_decode: Implement HADD2 and HMUL2
2019-01-15 17:54:52 -03:00
ReinUsesLisp
cf4a08d950
shader_decode: Implement HADD2_IMM and HMUL2_IMM
2019-01-15 17:54:52 -03:00
ReinUsesLisp
376a837511
shader_decode: Implement MOV_SYS
2019-01-15 17:54:52 -03:00
ReinUsesLisp
518a2bd206
shader_decode: Implement IMNMX
2019-01-15 17:54:52 -03:00
ReinUsesLisp
07944a2345
shader_decode: Implement F2F_C
2019-01-15 17:54:52 -03:00
ReinUsesLisp
e8235c0215
shader_decode: Implement I2I
2019-01-15 17:54:52 -03:00
ReinUsesLisp
6ca31f544a
shader_decode: Implement BRA internal flag
2019-01-15 17:54:52 -03:00
ReinUsesLisp
210620ff31
shader_decode: Implement ISCADD
2019-01-15 17:54:52 -03:00
ReinUsesLisp
b0e7920838
shader_decode: Implement XMAD
2019-01-15 17:54:51 -03:00
ReinUsesLisp
becfdb8638
shader_decode: Implement PBK and BRK
2019-01-15 17:54:51 -03:00
ReinUsesLisp
8f37531f8e
shader_decode: Implement LOP
2019-01-15 17:54:51 -03:00
ReinUsesLisp
8486e7f8c8
shader_decode: Implement SEL
2019-01-15 17:54:51 -03:00
ReinUsesLisp
ccb71bece9
shader_decode: Implement IADD
2019-01-15 17:54:51 -03:00
ReinUsesLisp
faadae5814
shader_decode: Implement ISETP
2019-01-15 17:54:51 -03:00
ReinUsesLisp
80183de884
shader_decode: Implement BFI
2019-01-15 17:54:51 -03:00
ReinUsesLisp
078ba28e13
shader_decode: Implement ISET
2019-01-15 17:54:51 -03:00
ReinUsesLisp
acdbbb8885
shader_decode: Implement LD_C
2019-01-15 17:54:51 -03:00
ReinUsesLisp
d79c462af0
shader_decode: Implement SHL
2019-01-15 17:54:51 -03:00
ReinUsesLisp
a2819c204f
shader_decode: Implement SHR
2019-01-15 17:54:51 -03:00
ReinUsesLisp
39f1c6246a
shader_decode: Implement LOP32I
2019-01-15 17:54:51 -03:00
ReinUsesLisp
501284a81a
shader_decode: Implement BFE
2019-01-15 17:54:51 -03:00
ReinUsesLisp
e444a6553f
shader_decode: Implement FSET
2019-01-15 17:54:51 -03:00
ReinUsesLisp
3052eae25e
shader_decode: Implement F2I
2019-01-15 17:54:51 -03:00
ReinUsesLisp
8abe5ba2c8
shader_decode: Implement I2F
2019-01-15 17:54:51 -03:00
ReinUsesLisp
c849b5b320
shader_decode: Implement F2F
2019-01-15 17:54:50 -03:00
ReinUsesLisp
9118deb990
shader_decode: Stub DEPBAR
2019-01-15 17:54:50 -03:00
ReinUsesLisp
97f33f00cf
shader_decode: Implement SSY and SYNC
2019-01-15 17:54:50 -03:00
ReinUsesLisp
abdbafbc20
shader_decode: Implement PSETP
2019-01-15 17:54:50 -03:00
ReinUsesLisp
802c23b8a8
shader_decode: Implement TMML
2019-01-15 17:54:50 -03:00
ReinUsesLisp
2b90637f4b
shader_decode: Implement TEX and TXQ
2019-01-15 17:54:50 -03:00
ReinUsesLisp
878672f371
shader_decode: Implement TEXS (F32)
2019-01-15 17:54:50 -03:00
ReinUsesLisp
c703f0aee4
shader_decode: Implement FSETP
2019-01-15 17:54:50 -03:00
ReinUsesLisp
8215ae942c
shader_decode: Partially implement BRA
2019-01-15 17:54:50 -03:00
ReinUsesLisp
4f95dc950e
shader_decode: Implement IPA
2019-01-15 17:54:50 -03:00
ReinUsesLisp
cacb934f21
shader_decode: Implement EXIT
2019-01-15 17:54:50 -03:00
ReinUsesLisp
0c049e0a21
shader_decode: Implement ST_A
2019-01-15 17:54:50 -03:00
ReinUsesLisp
e3f1233ce1
shader_decode: Implement LD_A
2019-01-15 17:54:50 -03:00
ReinUsesLisp
ea358bd4bf
shader_decode: Implement FADD32I
2019-01-15 17:54:50 -03:00
ReinUsesLisp
c9b2a1b051
shader_decode: Implement FMUL32_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
2edee801ce
shader_decode: Implement MOV32_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
06cb910c6d
shader_decode: Stub RRO_C, RRO_R and RRO_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
5e6a0a08c1
shader_decode: Implement FMNMX_C, FMNMX_R and FMNMX_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
964ddeeb90
shader_decode: Implement MUFU
2019-01-15 17:54:50 -03:00
ReinUsesLisp
4ccaa1402d
shader_decode: Implement FADD_C, FADD_R and FADD_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
7c192ec43f
shader_decode: Implement FMUL_C, FMUL_R and FMUL_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
4c70d5b8eb
shader_decode: Implement MOV_C and MOV_R
2019-01-15 17:54:50 -03:00
ReinUsesLisp
a4f052f6b3
video_core: Replace gl_shader_decompiler
2019-01-15 17:54:50 -03:00
ReinUsesLisp
0c6fb456e0
glsl_decompiler: Implementation
2019-01-15 17:54:50 -03:00
ReinUsesLisp
fbc67a0563
shader_ir: Add condition code helper
2019-01-15 17:54:50 -03:00
ReinUsesLisp
a58abbcfc4
shader_ir: Add predicate combiner helper
2019-01-15 17:54:49 -03:00
ReinUsesLisp
bf07272695
shader_ir: Add comparison helpers
2019-01-15 17:54:49 -03:00
ReinUsesLisp
60f044df56
shader_ir: Add half float helpers
2019-01-15 17:54:49 -03:00
ReinUsesLisp
e3c55e31d7
shader_ir: Add integer helpers
2019-01-15 17:54:49 -03:00
ReinUsesLisp
833d0806f9
shader_ir: Add float helpers
2019-01-15 17:54:49 -03:00
ReinUsesLisp
6b9eea3fe5
shader_ir: Add setters
2019-01-15 17:54:49 -03:00
ReinUsesLisp
12a95ff453
shader_ir: Add local memory getters
2019-01-15 17:54:49 -03:00
ReinUsesLisp
2f87fd060d
shader_ir: Add internal flag getters
2019-01-15 17:54:49 -03:00
ReinUsesLisp
15f431f0cb
shader_ir: Add attribute getters
2019-01-15 17:54:49 -03:00
ReinUsesLisp
864e8f55cf
shader_ir: Add constant buffer getters
2019-01-15 17:54:49 -03:00
ReinUsesLisp
5e639bfcf6
shader_ir: Add register getter
2019-01-15 17:54:49 -03:00
ReinUsesLisp
4aaa2192b9
shader_ir: Add immediate node constructors
2019-01-15 17:54:49 -03:00
ReinUsesLisp
15a0e1481d
shader_ir: Initial implementation
2019-01-15 17:54:49 -03:00
ReinUsesLisp
294df41b86
shader_bytecode: Fixup encoding
2019-01-15 17:54:49 -03:00
ReinUsesLisp
a0c8c16d07
shader_header: Make local memory size getter constant
2019-01-15 17:54:49 -03:00
ReinUsesLisp
877a978a22
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
3121408a90
gl_global_cache: Add dummy global cache manager
2019-01-08 17:47:45 -03:00
ReinUsesLisp
19cf995225
gl_rasterizer: Skip framebuffer configuration if rendertargets have not been changed
2019-01-07 16:23:23 -03:00
bunnei
23ebd4920e
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
b683e41fca
gl_rasterizer_cache: Use dirty flags for the depth buffer
2019-01-07 16:22:28 -03:00
ReinUsesLisp
179ee963db
gl_rasterizer_cache: Use dirty flags for color buffers
2019-01-07 16:20:39 -03:00
ReinUsesLisp
0ab17ab406
gl_shader_cache: Use dirty flags for shaders
2019-01-07 16:13:12 -03:00
ReinUsesLisp
5933b3ea96
gl_stream_buffer: Use DSA for buffer management
2019-01-06 16:49:24 -03:00
ReinUsesLisp
35c095898b
gl_rasterizer: Use DSA for vertex array objects
2019-01-06 16:49:24 -03:00
ReinUsesLisp
ea4928393f
gl_state: Drop uniform buffer state tracking
2019-01-06 00:28:01 -03:00
ReinUsesLisp
fc8a8789da
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
c91d2bac45
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
97fb6179b9
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
2020ba06e1
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
fbe900ba6d
Add missing uintBitsToFloat to SetRegisterToHalfFloat
2018-12-27 14:39:10 -03:00
bunnei
fa9acc26d9
Merge pull request #1892 from Tinob/master
...
Improve Zero flag implementation
2018-12-27 11:06:59 -05:00
Lioncash
67fa21e143
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
33056dd833
Apply CC test to the final value to be stored in the register
2018-12-26 18:16:31 -03:00
David
8047873a66
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
ReinUsesLisp
aaa0e6c346
shader_bytecode: Fixup TEXS.F16 encoding
2018-12-26 01:35:44 -03:00
bunnei
9a22a94a51
Merge pull request #1886 from FearlessTobi/port-4164
...
Port citra-emu/citra#4164 : "citra_qt, video_core: Screenshot functionality"
2018-12-23 14:36:51 -05:00
Rodolfo Bogado
bbf8d6bf01
Includde saturation in the evaluation of the control code
2018-12-22 19:19:18 -03:00
Rodolfo Bogado
946777601b
Handle RZ cases evaluating the expression instead of the register value.
2018-12-22 19:19:18 -03:00
Rodolfo Bogado
7e72b5e453
complete emulation of ZeroFlag
2018-12-22 19:19:18 -03:00
bunnei
e75e8b9580
Merge pull request #1921 from ogniK5377/no-unit
...
Fixed uninitialized memory due to missing returns in canary
2018-12-21 14:12:54 -05:00
bunnei
42427b9c7a
Merge pull request #1920 from heapo/texture_format_selection
...
Texture format fixes for RGBA16UI for copies and R16U when used as depth
2018-12-21 13:46:17 -05:00
bunnei
3050f3a7ba
Merge pull request #1909 from heapo/shadow_sampling_fixes
...
Fix arrayed texture LOD selection and depth comparison ordering
2018-12-19 13:10:37 -05:00
David Marcec
20859802f0
hopefully fix clang format issue
2018-12-19 13:22:09 +11:00
David Marcec
fdd649e2ef
Fixed uninitialized memory due to missing returns in canary
...
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
2018-12-19 12:52:32 +11:00
zhupengfei
a2be49305d
yuzu, video_core: Screenshot functionality
...
Allows capturing screenshot at the current internal resolution (native for software renderer), but a setting is available to capture it in other resolutions. The screenshot is saved to a single PNG in the current layout.
2018-12-18 22:54:41 +01:00
heapo
37280cf555
Texture format fixes: Flag RGBA16UI as GL_RGBA_INTEGER format, and interpret R16U as Z16 when depth_compare is enabled.
2018-12-18 11:34:51 -08:00
ReinUsesLisp
ef061481c5
shader_bytecode: Fixup half float's operator B encoding
2018-12-18 04:28:50 -03:00
heapo
72599cc667
Implement postfactor multiplication/division for fmul instructions
2018-12-17 07:56:25 -08:00
heapo
a6daed74f5
Fix arrayed shadow sampler array slice/depth comparison ordering, as well as invalid GLSL LOD selection.
2018-12-17 07:53:48 -08:00
bunnei
e1f28afb98
Merge pull request #1893 from lioncash/warn
...
gl_shader_cache: Resolve truncation compiler warning
2018-12-11 20:47:10 -05:00
bunnei
d63c883e66
Merge pull request #1888 from marcosvitali/glFrontFacing
...
gl_shader_decompiler: IPA fix FrontFacing.
2018-12-11 11:43:38 -05:00
Lioncash
4c2b94559b
gl_shader_cache: Dehardcode constant in CalculateProgramSize()
...
This constant is related to the size of the instruction.
2018-12-10 23:47:20 -05:00
Lioncash
861bfdbf5d
gl_shader_cache: Resolve truncation compiler warning
...
The previous code would cause a warning, as it was truncating size_t
(64-bit) to a u32 (32-bit) implicitly.
2018-12-10 23:44:18 -05:00
bunnei
5b5d0199fe
Merge pull request #1740 from FernandoS27/shader_props
...
Implemented Shader Unique Identifiers
2018-12-10 12:43:43 -05:00
Marcos Vitali
430e1f864b
gl_shader_decompiler: IPA FrontFacing: the right value when is the front face is 0xFFFFFFFF.
2018-12-09 23:36:21 -03:00
Fernando Sahmkow
d5d77848e6
Implemented a shader unique identifier.
2018-12-09 17:33:33 -04:00
FernandoS27
7b9c982d29
Add more info into textures' object labels
2018-12-09 17:22:29 -04:00
Marcos Vitali
f4fa7ecb0e
gl_shader_decompiler: TLDS/TLD4/TLD4S Reworked reflecting the source registers, bugs fixed and modularize.
2018-12-07 19:09:36 -03:00
bunnei
9390452195
Merge pull request #1824 from ReinUsesLisp/fbcache
...
gl_rasterizer: Implement a framebuffer cache
2018-12-06 11:56:59 -05:00
ReinUsesLisp
59a8df1b14
gl_shader_decompiler: Implement TEXS.F16
2018-12-05 02:06:34 -03:00
ReinUsesLisp
370980fdc3
gl_shader_decompiler: Fixup inverted if
2018-12-05 01:23:04 -03:00
heapo
7853e6b5d4
Improve msvc codegen for hot-path array LUTs
...
In some constexpr functions, msvc is building the LUT at runtime
(pushing each element onto the stack) out of an abundance of caution. Moving the
arrays into be file-scoped constexpr's avoids this and turns the functions into
simple look-ups as intended.
2018-12-04 17:13:07 -08:00
Marcos
ab2108fb2a
Rewrited TEX/TEXS (TEX Scalar). ( #1826 )
...
* Rewrited TEX/TEXS (TEX Scalar).
* Style fixes.
* Styles issues.
2018-12-04 12:24:35 -05:00
bunnei
7f6bc284e9
Merge pull request #1854 from Subv/old_command_processor
...
Don't try to route PFIFO methods (0-0x40) to the other engines.
2018-12-04 08:49:22 -05:00
Subv
c4c19fa6c1
Removed unused file.
...
This is a leftover from #1792
2018-12-03 23:52:38 -05:00
Subv
b873253da1
GPU: Don't try to route PFIFO methods (0-0x40) to the other engines.
2018-12-03 23:52:18 -05:00
bunnei
8a12daac8c
Merge pull request #1822 from ReinUsesLisp/glsl-scope
...
gl_shader_decompiler: Introduce a scoped object and style changes
2018-12-03 17:10:02 -05:00
bunnei
7ce17b2cf6
Merge pull request #1827 from ReinUsesLisp/clip-and-shader
...
gl_rasterizer: Enable clip distances when set in register and in shader
2018-12-01 23:51:47 -05:00
bunnei
80aa124b1d
Merge pull request #1825 from ReinUsesLisp/shader-pipeline-cache
...
gl_shader_manager: Update pipeline when programs have changed
2018-12-01 23:48:55 -05:00
bunnei
a6805e58ce
Merge pull request #1795 from ReinUsesLisp/vc-cleanup
...
video_core: Minor style changes
2018-12-01 23:46:18 -05:00
bunnei
0e9be7be37
Merge pull request #1823 from bunnei/fix-surface-copy
...
gl_rasterizer_cache: Fix several surface copy issues.
2018-12-01 23:44:32 -05:00
Lioncash
e88cdcc912
Fix debug build
...
A non-existent parameter was left in some formatting calls (the logging
macro for which only does anything meaningful on debug builds)
2018-12-01 02:11:42 -05:00
bunnei
0f43564d09
gl_rasterizer_cache: Update AccurateCopySurface to flush complete source surface.
...
- Fixes issues with Breath of the Wild with use_accurate_gpu_emulation setting.
2018-11-29 20:10:11 -05:00
ReinUsesLisp
2908d30274
gl_rasterizer: Enable clip distances when set in register and in shader
2018-11-29 16:58:20 -03:00
ReinUsesLisp
1a2bb596db
gl_rasterizer: Implement a framebuffer cache
2018-11-29 16:34:46 -03:00
ReinUsesLisp
e8620eaa9a
gl_shader_manager: Update pipeline when programs have changed
2018-11-29 16:26:42 -03:00
bunnei
3d3cc35ee7
gl_rasterizer_cache: Remove BlitSurface and replace with more accurate copy.
...
- BlitSurface with different texture targets is inherently broken.
- When target is the same, we can just use FastCopySurface.
- Fixes rendering issues with Breath of the Wild.
2018-11-28 21:56:21 -05:00
ReinUsesLisp
eb700afcf0
gl_shader_decompiler: Remove texture temporal in TLD4
2018-11-28 23:46:16 -03:00
ReinUsesLisp
8d58e5da71
gl_shader_decompiler: Flip negated if else statement
2018-11-28 23:46:16 -03:00
ReinUsesLisp
f4abebd731
gl_shader_decompiler: Use GLSL scope on instructions unrelated to textures
2018-11-28 23:46:14 -03:00
ReinUsesLisp
78fc8f6b66
gl_shader_decompiler: Move texture code generation into lambdas
2018-11-28 23:45:53 -03:00
ReinUsesLisp
ab13b628d0
gl_shader_decompiler: Clean up texture instructions
2018-11-28 23:45:53 -03:00
ReinUsesLisp
6a642022dd
gl_shader_decompiler: Scope GLSL variables with a scoped object
2018-11-28 23:45:51 -03:00
ReinUsesLisp
037449668e
gl_rasterizer: Signal UNIMPLEMENTED when rt_separate_frag_data is not zero
2018-11-28 21:26:22 -03:00
ReinUsesLisp
653d7a3f0d
gl_rasterizer_cache: Use brackets for two-line single-expresion blocks
2018-11-28 21:18:14 -03:00
ReinUsesLisp
432a9872ed
gl_rasterizer: Remove unused struct declarations
2018-11-28 21:18:13 -03:00
ReinUsesLisp
22c7c710b4
gl_rasterizer: Remove extension booleans
2018-11-28 21:18:13 -03:00
bunnei
5a9a84994a
Merge pull request #1808 from Tinob/master
...
Fix clip distance and viewport
2018-11-28 17:47:28 -05:00
bunnei
3fe8ab0d99
Merge pull request #1786 from Tinob/DepthClamp
...
Add Depth Clamp Support
2018-11-28 17:46:55 -05:00
bunnei
6f849887c9
Merge pull request #1792 from bunnei/dma-pusher
...
gpu: Rewrite GPU command list processing with DmaPusher class.
2018-11-28 10:12:37 -05:00
bunnei
881f5ad70f
Merge pull request #1735 from FernandoS27/tex-spacing
...
Texture decoder: Implemented Tile Width Spacing
2018-11-27 19:21:17 -05:00
bunnei
ac74b71d75
dma_pushbuffer: Optimize to avoid loop and copy on Push.
2018-11-27 19:17:33 -05:00
bunnei
c568f5cea7
gpu: Move command list profiling to DmaPusher::DispatchCalls.
2018-11-27 18:42:21 -05:00
ReinUsesLisp
2e9b90abad
gl_shader_decompiler: Fixup clip distance index
2018-11-27 15:35:26 -03:00
Markus Wick
8747f5fc0d
gl_rasterizer: Fixup for #1723 .
...
On invalidating the streaming buffer, we need to reupload all vertex buffers.
But we don't need to reconfigure the vertex format.
This was a (silly) misstake in #1723 .
Thanks at Rodrigo for discovering the issue.
Fun fact, as configuring the vertex format also invalidate the vertex buffer,
this misstake had no affect on the behavior.
2018-11-27 10:32:41 +01:00
bunnei
abea6fa90c
gpu: Rewrite GPU command list processing with DmaPusher class.
...
- More accurate impl., fixes Undertale (among other games).
2018-11-26 23:14:01 -05:00
Rodolfo Bogado
6710eb4892
remove viewport_transform_enabled as it seems to be inactive when valid transforms are used.
2018-11-27 00:04:33 -03:00
ReinUsesLisp
237c2026e9
morton: Fixup compiler warning
2018-11-26 23:22:57 -03:00
Rodolfo Bogado
dfdbfa69e5
Implement depth clamp
2018-11-26 20:56:32 -03:00
Rodolfo Bogado
8e971f5062
Add support for Clip Distance enabled register
2018-11-26 20:45:21 -03:00
bunnei
1856d0ee8a
Merge pull request #1794 from Tinob/master
...
Add support for viewport_transfom_enable register
2018-11-26 18:34:09 -05:00
bunnei
67a154e23d
Merge pull request #1723 from degasus/dirty_flags
...
gl_rasterizer: Skip VB upload if the state is clean.
2018-11-26 18:33:22 -05:00
Marcos
cb8d51e37e
GPU States: Implement Polygon Offset. This is used in SMO all the time. ( #1784 )
...
* GPU States: Implement Polygon Offset. This is used in SMO all the time.
* Clang Format fixes.
* Initialize polygon_offset in the constructor.
2018-11-26 18:31:44 -05:00
bunnei
7684f4d0cf
Merge pull request #1713 from FernandoS27/bra-cc
...
Implemented BRA CC conditional and FSET CC Setting
2018-11-26 18:28:03 -05:00
bunnei
a41943dc55
Merge pull request #1798 from ReinUsesLisp/y-direction
...
gl_shader_decompiler: Implement S2R's Y_DIRECTION
2018-11-26 18:25:42 -05:00
FernandoS27
ddfbe0b58d
Implemented Tile Width Spacing
2018-11-26 09:05:12 -04:00
bunnei
f9a211220c
Merge pull request #1763 from ReinUsesLisp/bfi
...
gl_shader_decompiler: Implement BFI_IMM_R
2018-11-25 23:04:57 -05:00
bunnei
d7d1ab15b6
Merge pull request #1760 from ReinUsesLisp/r2p
...
gl_shader_decompiler: Implement R2P_IMM
2018-11-25 22:38:42 -05:00
bunnei
0394813401
Merge pull request #1782 from FernandoS27/dc
...
Fixed Coordinate Encodings in TEX and TEXS instructions
2018-11-25 22:36:25 -05:00
bunnei
8ce90a4f0b
Merge pull request #1783 from ReinUsesLisp/clip-distances
...
gl_shader_decompiler: Implement clip distances
2018-11-25 22:35:30 -05:00
bunnei
ceb4bc22a4
Merge pull request #1796 from ReinUsesLisp/morton-move
...
video_core: Move morton functions out of gl_rasterizer_cache
2018-11-25 22:35:12 -05:00
Rodolfo Bogado
415e8383ba
Limit the amount of viewports tested for state changes only to the usable ones
2018-11-25 12:18:29 -03:00
ReinUsesLisp
924e834b8f
gl_shader_decompiler: Implement S2R's Y_DIRECTION
2018-11-25 04:37:29 -03:00
bunnei
7d544c1b9d
Merge pull request #1787 from bunnei/fix-gpu-mm
...
memory_manager: Do not allow 0 to be a valid GPUVAddr.
2018-11-24 23:45:00 -05:00
ReinUsesLisp
7ff2131cf9
morton: Style changes
2018-11-25 00:38:53 -03:00
ReinUsesLisp
dad3a6718e
video_core: Move morton functions to their own file
2018-11-25 00:37:18 -03:00
FernandoS27
8c797464a2
Fix Texture Overlapping
2018-11-24 17:26:42 -04:00
FernandoS27
33afff1870
Implemented BRA CC conditional and FSET CC Setting
2018-11-24 13:25:54 -04:00
Rodolfo Bogado
13f6a603c2
Add support for viewport_transfom_enable register
2018-11-24 13:17:48 -03:00
bunnei
d01bf170c4
Merge pull request #1725 from FernandoS27/gl43
...
Update OpenGL's backend version from 3.3 to 4.3
2018-11-23 23:56:57 -05:00
bunnei
e23543918b
Merge pull request #1785 from Tinob/master
...
Add support for clear_flags register
2018-11-23 23:55:56 -05:00
bunnei
b6b78203cc
Merge pull request #1769 from ReinUsesLisp/cc
...
gl_shader_decompiler: Rename cc to condition code and name internal flags
2018-11-23 23:31:04 -05:00
Rodolfo Bogado
54c2a4cafc
Add support for clear_flags register
2018-11-24 00:16:33 -03:00
FernandoS27
7668ef51d6
Fix TEXS Instruction encodings
2018-11-23 22:46:50 -04:00
FernandoS27
9c2127d5eb
Fix one encoding in TEX Instruction
2018-11-23 22:46:49 -04:00
FernandoS27
487d805899
Corrected inputs indexing in TEX instruction
2018-11-23 22:46:48 -04:00
bunnei
69b3f98d3a
Merge pull request #1744 from degasus/shader_cache
...
shader_cache: Only lock covered instructions.
2018-11-23 21:09:36 -05:00
bunnei
0b1842294f
memory_manager: Do not allow 0 to be a valid GPUVAddr.
...
- Fixes a bug with Undertale using 0 for a render target.
2018-11-23 12:58:55 -05:00
Hexagon12
3135dbc29c
Added predicate comparison LessEqualWithNan ( #1736 )
...
* Added predicate comparison LessEqualWithNan
* oops
* Clang fix
2018-11-23 08:51:32 -08:00
bunnei
c4b5319446
Merge pull request #1756 from ReinUsesLisp/fix-textures
...
gl_shader_decompiler: Fix register overwriting on texture calls
2018-11-23 08:49:37 -08:00
bunnei
d77af9f8fd
Merge pull request #1766 from FernandoS27/fix-txq
...
Properly Implemented TXQ Instruction
2018-11-23 08:48:57 -08:00
ReinUsesLisp
b3853403b7
gl_shader_decompiler: Implement clip distances
2018-11-23 02:14:43 -03:00
ReinUsesLisp
c9ac23683b
gl_shader_decompiler: Add a message for unimplemented cc generation
2018-11-22 16:12:27 -03:00
bunnei
50d2abaaa9
Merge pull request #1775 from bunnei/blend-eq
...
maxwell_3d: Implement alternate blend equations.
2018-11-22 08:44:05 -08:00
bunnei
e633021532
Merge pull request #1764 from bunnei/macrointerpreter
...
macro_interpreter: Implement AddWithCarry and SubtractWithBorrow.
2018-11-22 08:43:29 -08:00
bunnei
033b46253e
macro_interpreter: Implement AddWithCarry and SubtractWithBorrow.
...
- Used by Undertale.
2018-11-22 00:58:00 -05:00
bunnei
0e6a608245
maxwell_3d: Implement alternate blend equations.
...
- Used by Undertale.
2018-11-22 00:51:01 -05:00
bunnei
b84f4cfb62
Merge pull request #1737 from FernandoS27/layer-copy
...
Implemented Fast Layered Copy
2018-11-21 21:39:16 -08:00
ReinUsesLisp
74eb16521f
gl_shader_decompiler: Rename internal flag strings
2018-11-21 22:31:42 -03:00
ReinUsesLisp
8a5e6fce07
gl_shader_decompiler: Rename control codes to condition codes
2018-11-21 22:31:16 -03:00
ReinUsesLisp
864cbbaf4c
gl_shader_decompiler: Fix register overwriting on texture calls
2018-11-21 21:21:19 -03:00
bunnei
ec38b4e883
Merge pull request #1753 from FernandoS27/ufbtype
...
Use default values for unknown framebuffer pixel format
2018-11-21 14:15:27 -08:00
bunnei
61586e8794
Merge pull request #1752 from ReinUsesLisp/unimpl-decompiler
...
gl_shader_decompiler: Use UNIMPLEMENTED when applicable
2018-11-21 14:13:28 -08:00
FernandoS27
4a6a9b6622
Properly Implemented TXQ Instruction
2018-11-21 18:12:36 -04:00
ReinUsesLisp
642dfeda2a
gl_shader_decompiler: Implement BFI_IMM_R
2018-11-21 16:12:30 -03:00
bunnei
bb175ab430
Merge pull request #1754 from ReinUsesLisp/zero-register
...
gl_shader_decompiler: Remove UNREACHABLE when setting RZ
2018-11-21 08:06:29 -08:00
FernandoS27
0368260c99
Removed pre 4.3 ARB extensions
2018-11-21 11:43:17 -04:00
FernandoS27
0a9fedfac9
Use default values for unknown framebuffer pixel format
2018-11-21 07:33:34 -04:00
ReinUsesLisp
d92afc7493
gl_shader_decompiler: Implement R2P_IMM
2018-11-21 04:56:00 -03:00
ReinUsesLisp
423a3ed2c8
gl_shader_decompiler: Remove UNREACHABLE when setting RZ
2018-11-20 22:23:10 -03:00
ReinUsesLisp
bb893188eb
gl_shader_decompiler: Use UNIMPLEMENTED instead of LOG+UNREACHABLE when applicable
2018-11-20 22:00:13 -03:00
bunnei
1a543723ab
maxwell_3d: Initialize rasterizer color mask registers as enabled.
...
- Fixes rendering regression with Sonic Mania.
2018-11-20 19:58:06 -05:00
Markus Wick
cfbae58b2b
shader_cache: Only lock covered instructions.
2018-11-20 21:58:31 +01:00
FernandoS27
eb36463e03
Implemented Fast Layered Copy
2018-11-19 19:51:13 -04:00
bunnei
f02b125ac8
Merge pull request #1717 from FreddyFunk/swizzle-gob
...
textures/decoders: Replace magic numbers
2018-11-18 20:13:00 -08:00
bunnei
6dc33fb812
Merge pull request #1693 from Tinob/master
...
Missing ogl states
2018-11-18 19:59:10 -08:00