Commit Graph

12683 Commits

Author SHA1 Message Date
Fernando Sahmkow
210cd9f3f6 texture_cache: Implement GPU Dirty Flags 2019-06-20 21:36:12 -03:00
Fernando Sahmkow
5fd215869f texture_cache: Optimize GetMipBlockHeight and GetMipBlockDepth 2019-06-20 21:36:12 -03:00
Fernando Sahmkow
d69931c30f texture_cache: Implement L1_Inner_cache 2019-06-20 21:36:12 -03:00
ReinUsesLisp
20b0916f0a video_core: Use un-shifted block sizes to avoid integer divisions
Instead of storing all block width, height and depths in their shifted
form:

block_width = 1U << block_shift;

Store them like they are provided by the emulated hardware (their
block_shift form). This way we can avoid doing the costly
Common::AlignUp operation to align texture sizes and drop CPU integer
divisions with bitwise logic (defined in Common::AlignBits).
2019-06-20 21:36:12 -03:00
ReinUsesLisp
bb53d144ec texture_cache: Change internal cache from lists to vectors 2019-06-20 21:36:12 -03:00
Fernando Sahmkow
fe0259c6b9 Reduce amount of size calculations. 2019-06-20 21:36:12 -03:00
Fernando Sahmkow
830ff8a985 texture_cache: Correct premature texceptions
Due to our current infrastructure, it is possible for a mipmap to be set 
on as a render target before a texception of that mipmap's superset be 
set afterwards. This is problematic as we rely on texture views to set 
up texceptions and protecting render targets targets for 3D texture 
rendering.

One simple solution is to configure framebuffers after texture setup but 
this brings other problems. This solution, forces a reconfiguration of 
the framebuffers after such event happens.
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
0688a6a904 texture_cache: Implement guest flushing 2019-06-20 21:36:12 -03:00
Fernando Sahmkow
0d0cbc1a4c Fixes to mipmap's process and reconstruct process 2019-06-20 21:36:12 -03:00
ReinUsesLisp
a8dd825648 surface_base: Add parenthesis to EmplaceOverview's predicate 2019-06-20 21:36:12 -03:00
Fernando Sahmkow
4a45fde9ce Texture Cache: Implement Blitting and Fermi Copies 2019-06-20 21:36:12 -03:00
ReinUsesLisp
dd2cb6eb72 surface_view: Add constructor for ViewParams 2019-06-20 21:36:12 -03:00
ReinUsesLisp
499c58fded surface_base: Split BreakDown into layered and non-layered variants 2019-06-20 21:36:12 -03:00
ReinUsesLisp
e08ae64b94 surface_base: Silence truncation warnings and minor renames and reordering 2019-06-20 21:36:12 -03:00
ReinUsesLisp
38fe4aec5c copy_params: Use constructor instead of C-like initialization 2019-06-20 21:36:12 -03:00
Fernando Sahmkow
8bec2b9d95 Correct Mipmaps View method in Texture Cache 2019-06-20 21:36:12 -03:00
Fernando Sahmkow
7de28451ca Change texture_cache chaching from GPUAddr to CacheAddr
This also reverses the changes to make invalidation and flushing through
the GPU address.
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
1e50fed257 Corrections to Structural Matching
The texture will now be reconstructed if the width only matches on GoB 
alignment.
2019-06-20 21:36:12 -03:00
Fernando Sahmkow
b6863a26bd Implement Texture Cache V2 2019-06-20 21:36:12 -03:00
Fernando Sahmkow
3adcd6cc60 Correct Surface Base and Views for new Texture Cache 2019-06-20 21:36:12 -03:00
Fernando Sahmkow
8d338ca4b0 Add OGLTextureView 2019-06-20 21:36:12 -03:00
Fernando Sahmkow
cafc3230af Deglobalize Memory Manager on texture cahe and Implement Invalidation and Flushing using GPUVAddr 2019-06-20 21:36:11 -03:00
ReinUsesLisp
05a53f7916 texture_cache: Remove execution context copies from the texture cache
This is done to simplify the OpenGL implementation, it is needed for
Vulkan.
2019-06-20 21:36:11 -03:00
ReinUsesLisp
ea30254302 gl_texture_cache: Implement fermi copies 2019-06-20 21:36:11 -03:00
ReinUsesLisp
8a2725de17 texture_cache: Split texture cache into different files 2019-06-20 21:36:11 -03:00
ReinUsesLisp
703bc0d8b1 texture_cache: Move staging buffer into a generic implementation 2019-06-20 21:36:11 -03:00
ReinUsesLisp
6bc742fe25 texture_cache: Flush 3D textures in the order they are drawn 2019-06-20 21:36:11 -03:00
ReinUsesLisp
c3f1e7f6f5 gl_texture_cache: Minor changes 2019-06-20 21:36:11 -03:00
ReinUsesLisp
5b3d4c10bc gl_texture_cache: Add copy from multiple overlaps into a single surface 2019-06-20 21:36:11 -03:00
ReinUsesLisp
b075c843eb gl_texture_cache: Attach surface textures instead of views 2019-06-20 21:36:11 -03:00
ReinUsesLisp
2a1b1bd43c gl_texture_cache: Add fast copy path 2019-06-20 21:36:11 -03:00
ReinUsesLisp
a005fa1338 gl_texture_cache: Initial implementation 2019-06-20 21:36:11 -03:00
Zach Hilman
17192bae88 freezer: Update documentation 2019-06-20 19:22:53 -04:00
Zach Hilman
041d40f02b core: Move Freezer class to tools namespace 2019-06-20 19:22:53 -04:00
Zach Hilman
0fad03a965 freezer: Add documentation for methods 2019-06-20 19:22:04 -04:00
Zach Hilman
7105189384 memory: Add class to manage and enforce memory freezing 2019-06-20 19:22:04 -04:00
bunnei
0c951042c0 Merge pull request #2596 from FernandoS27/revert-2590
Revert PR 2590.
2019-06-20 13:04:06 -04:00
Hexagon12
a1a8345c36 Merge pull request #2595 from jonsn0w/patch-1
Update content_archive.cpp
2019-06-20 10:03:24 +03:00
Fernando Sahmkow
4374e14028 Revert PR 2590.
Even though it has been proven that IAudioRenderer:SystemEvent is 
actually an automatic event. The current implementation of such event is 
all thought to be manual. Thus it's implementation needs to be corrected 
when doing such change. As it is right now this PR introduced a series 
of regressions on softlocks on multiple games. Therefore, this pr 
reverts such change until a correct implementation is made.
2019-06-19 23:19:19 -04:00
bunnei
e20b214a49 Merge pull request #2591 from lioncash/record
core: Remove unused CiTrace source files
2019-06-19 22:28:26 -04:00
bunnei
b2abef9d2d Merge pull request #2590 from lioncash/event
service/audio/audren_u: Correct event reset type for the system event
2019-06-19 22:27:52 -04:00
Frederic L
68fcb3d6b5 CMake: Get Git submodule dependencies via CMake (#2474)
* CMake: Get Git submodule dependencies via CMake

* CMakeLists: Fixed unintentional line break

* travis: Bring parity between linux-mingw and linux build script

* CMakeLists: Fixed typo in error message
2019-06-19 22:26:12 -04:00
jonsn0w
eb7fba33a8 Update content_archive.cpp
log clutter in debug logs when theres really no need
2019-06-19 22:01:41 -04:00
Zach Hilman
7a0dee8e77 Merge pull request #2594 from FearlessTobi/very-important-change
yuzu/configure_input: Add missing space in window title
2019-06-19 19:15:37 -04:00
Tobias
81ddb7b94e Change to a more descriptive name 2019-06-19 23:55:13 +02:00
Tobias
a696b251c9 yuzu/configure_input: Add missing space in window name 2019-06-19 23:32:34 +02:00
Mat M
f5e85e100c Merge pull request #2593 from deadmeu/patch-1
Added missing space between two words
2019-06-19 14:11:10 -04:00
Alex Subaric
ac00d1a916 Added missing space between two words
Added missing whitespace character between two words in the "Warning Missing Derivation Components" warning message box.
2019-06-20 02:42:56 +10:00
Zach Hilman
561ebe6521 Merge pull request #2584 from ogniK5377/cadence
Impl'd IsUserAccountSwitchLocked, SetAudioOutVolume, GetAudioOutVolume & Partial impl of GetAccumulatedSuspendedTickChangedEvent
2019-06-19 10:29:42 -04:00
Lioncash
f27d2bc33c core: Remove unused CiTrace source files
These source files have been unused for the entire lifecycle of the
project. They're a hold-over from Citra and only add to the build time
of the project, so they can be removed.

There's also likely no way this would ever work in yuzu in its current
form without revamping quite a bit of it, given how different the GPU on
the Switch is compared to the 3DS.
2019-06-18 16:57:59 -04:00