80a673a27f
maxwell_3d: Silence array bounds warnings
2021-01-24 04:31:41 -03:00
ad48259d7e
maxwell_to_vk: Silence -Wextra warnings about using different enum types
2021-01-24 04:03:36 -03:00
9477d23d70
shader_ir: Fix comment typo
2021-01-23 13:16:37 -05:00
966896daad
video_core/cmake: Properly generate fatal errors on Aftermath
...
Fix "message(ERROR ..." to "message(FATAL_ERROR ..." to properly stop
cmake when Nsight Aftermath can't be configured.
2021-01-23 04:15:30 -03:00
625a011888
nsight_aftermath_tracker: Fix build issues when enabled
...
Fixes a bunch of build errors when Nsight Aftermath is properly enabled.
2021-01-23 04:13:39 -03:00
37ef2ee595
vk_pipeline_cache: Properly bypass VertexA shaders
...
The VertexA stage is not yet implemented, but Vulkan is adding its
descriptors, causing a discrepancy in the pushed descriptors and the
template. This generally ends up in a driver side crash.
Bypass the VertexA stage for now.
2021-01-23 03:59:59 -03:00
302a5f00e8
Merge pull request #4713 from behunin/int-flags
...
Start of Integer flags implementation
2021-01-22 21:57:14 -08:00
bda177ef40
video_core/memory_manager: Add BytesToMapEnd
...
Track map address sizes in a flat ordered map and add a method to query
the number of bytes until the end of a map in a given address.
2021-01-22 18:31:12 -03:00
436457b6e7
gl_shader_decompiler: Fix constant buffer size calculation
...
The divide logic was wrong and can cause an uniform buffer size
overflow.
2021-01-21 19:47:41 -03:00
b7febb5625
video_core/memory_manager: Remove unused CopyBlockUnsafe
...
This function was not being used.
2021-01-21 19:16:06 -03:00
0e9a6759f9
video_core/memory_manager: Flush destination buffer on CopyBlock
...
When we copy into a buffer, it might contain data modified from the GPU
on the same pages. Because of this, we have to flush the contents before
writing new data.
An alternative approach would be to write the data in place, but games
can also write data in other ways, invalidating our contents.
Fixes geometry in Zombie Panic in Wonderland DX.
2021-01-21 19:16:06 -03:00
dd790abab0
video_core/memory_manager: Add GPU address based flush method
...
Allow flushing rasterizer contents based on a GPU address.
2021-01-21 19:16:05 -03:00
ffbde909c8
Merge pull request #5361 from ReinUsesLisp/vk-shader-comment
...
vk_shader_decompiler: Show comments as OpUndef with a type
2021-01-20 21:33:42 -08:00
51512d01d8
renderer_opengl: Avoid precompiled cache and force NV GL cache directory
...
Setting __GL_SHADER_DISK_CACHE_PATH we can force the cache directory to
be in yuzu's user directory to stop commonly distributed malware from
deleting our driver shader cache. And by setting
__GL_SHADER_DISK_CACHE_SKIP_CLEANUP we can have an unbounded shader
cache size.
This has only been implemented on Windows, mostly because previous tests
didn't seem to work on Linux.
Disable the precompiled cache on Nvidia's driver. There's no need to
hide information the driver already has in its own cache.
2021-01-21 00:41:03 -03:00
2ef4591e58
Merge pull request #5746 from lioncash/sign-compare
...
texture_cache/util: Resolve -Wsign-compare warning
2021-01-18 03:49:58 -03:00
132f2006af
Merge pull request #5745 from lioncash/documentation
...
video_core: Resolve -Wdocumentation warnings
2021-01-17 05:37:17 -03:00
5f4e7c77bd
texture_cache/util: Resolve -Wsign-compare warning
...
Resolves a -Wsign-compare warning on Clang.
2021-01-17 02:47:48 -05:00
40acc2c079
video_core: Resolve -Wdocumentation warnings
...
Silences some -Wdocumentation warnings on Clang.
2021-01-17 02:44:21 -05:00
c61b973968
vulkan_debug_callback: Add missing header guard
...
Prevents inclusion issues from occurring.
2021-01-17 02:39:24 -05:00
fd873fd369
Merge pull request #5262 from ReinUsesLisp/buffer-base
...
buffer_cache/buffer_base: Add a range tracking buffer container and tests
2021-01-16 19:48:26 -03:00
c17ee0da5d
Merge pull request #5297 from ReinUsesLisp/vulkan-allocator-common
...
vulkan_memory_allocator: Improvements to the memory allocator
2021-01-15 21:50:05 -03:00
c3c7603076
vk_shader_decompiler: Show comments as OpUndef with a type
...
Silence the new validation layer error about SPIR-V not allowing OpUndef
on a OpTypeVoid, even when the SPIR-V spec doesn't say anything against
it.
They will be inserted as an undefined int to avoid SPIRV-Cross and
validation errors, but only when a debugging tool is attached.
2021-01-15 21:12:57 -03:00
8be9e5b48b
Merge pull request #5358 from ReinUsesLisp/rename-insert-padding
...
common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT
2021-01-15 16:19:46 -05:00
3ff978aa4f
common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT
...
INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
2021-01-15 16:27:28 -03:00
301e2b5b7a
vulkan_memory_allocator: Remove unnecesary 'device' memory from commits
2021-01-15 16:19:40 -03:00
432f045dba
vk_texture_cache: Use Download memory types for texture flushes
...
Use the Download memory type where it matters.
2021-01-15 16:19:40 -03:00
8f22f5470c
vulkan_memory_allocator: Add allocation support for download types
...
Implements the allocator logic to handle download memory types. This
will try to use HOST_CACHED_BIT when available.
2021-01-15 16:19:39 -03:00
72541af3bc
vulkan_memory_allocator: Add "download" memory usage hint
...
Allow users of the allocator to hint memory usage for downloads. This
removes the non-descriptive boolean passed for "host visible" or not
host visible memory commits, and uses an enum to hint device local,
upload and download usages.
2021-01-15 16:19:39 -03:00
fade63b58e
vulkan_common: Move allocator to the common directory
...
Allow using the abstraction from the OpenGL backend.
2021-01-15 16:19:39 -03:00
c2b550987b
renderer_vulkan: Rename Vulkan memory manager to memory allocator
...
"Memory manager" collides with the guest GPU memory manager, and a
memory allocator sounds closer to what the abstraction aims to be.
2021-01-15 16:19:39 -03:00
e996f1ad09
vk_memory_manager: Improve memory manager and its API
...
Fix a bug where the memory allocator could leave gaps between commits.
To fix this the allocation algorithm was reworked, although it's still
short in number of lines of code.
Rework the allocation API to self-contained movable objects instead of
naively using an unique_ptr to do the job for us. Remove the VK prefix.
2021-01-15 16:19:36 -03:00
9754a8145c
Merge pull request #5357 from ReinUsesLisp/alignment-log2
...
common/alignment: Rename AlignBits to AlignUpLog2 and use constraints
2021-01-15 03:12:36 -05:00
8620de6b20
common/bit_util: Replace CLZ/CTZ operations with standardized ones
...
Makes for less code that we need to maintain.
2021-01-15 02:15:32 -05:00
fe494a0ccd
common/alignment: Rename AlignBits to AlignUpLog2
...
AlignUpLog2 describes what the function does better than AlignBits.
2021-01-15 04:13:33 -03:00
cc2c3e447f
video_core/cmake: Remove Werror flags already defined code-base wide
...
These flags are already defined in src/cmake.
2021-01-15 03:37:34 -03:00
28e78d81b2
Merge pull request #5351 from ReinUsesLisp/vc-unused-functions
...
cmake: Enforce -Wunused-function code-base wise
2021-01-15 01:36:51 -05:00
185388f341
Merge pull request #5350 from ReinUsesLisp/vk-init-warns
...
vulkan_common: Silence missing initializer warnings
2021-01-15 03:32:01 -03:00
76b465f3ef
Merge pull request #5349 from ReinUsesLisp/anv-fix
...
vulkan_device: Enable shaderStorageImageMultisample conditionally
2021-01-15 01:17:00 -05:00
06e0506cb3
cmake: Enforce -Wunused-function code-base wide
2021-01-15 03:09:48 -03:00
71264ce9a7
video_core: Enforce -Wunused-function
...
Stops us from merging code with unused functions in the future.
If something is invoked behind conditionally evaluated code in
a way that the language can't see it (e.g. preprocessor macros), the
potentially unused function should use [[maybe_unused]].
2021-01-15 02:59:25 -03:00
3e03391a49
vk_buffer_cache: Remove unused function
2021-01-15 02:58:55 -03:00
be8fd5490e
vulkan_common: Silence missing initializer warnings
...
Silence warnings explicitly initializing all members on construction.
2021-01-15 02:55:11 -03:00
ba2ea7eeac
vulkan_device: Enable shaderStorageImageMultisample conditionally
...
Fix Vulkan initialization on ANV.
2021-01-15 02:47:05 -03:00
22be115eb2
astc: Increase integer encoded vector size
...
Invalid ASTC textures seem to write more bytes here, increase
the size to something that can't make us push out of bounds.
2021-01-15 02:24:36 -03:00
0ec71b78fb
astc: Return zero on out of bound bits
...
Avoid out of bound reads on invalid ASTC textures.
Games can bind invalid textures that make us read or write out of bounds.
2021-01-15 02:24:36 -03:00
d9a15a935b
vulkan_device: Remove requirement on shaderStorageImageMultisample
...
yuzu doesn't currently emulate MS image stores. Requiring this makes no
sense for now. Fixes ANV not booting any games on Vulkan.
2021-01-13 06:21:33 -03:00
a4bfae1b55
buffer_cache/buffer_base: Add a range tracking buffer container
...
It keeps track of the modified CPU and GPU ranges on a CPU page
granularity, notifying the given rasterizer about state changes
in the tracking behavior of the buffer.
Use a small vector optimization to store buffers smaller than 256 KiB
locally instead of using free store memory allocations.
2021-01-13 04:14:58 -03:00
de1a316369
Merge pull request #5311 from ReinUsesLisp/fence-wait
...
vk_fence_manager: Use timeline semaphores instead of spin waits
2021-01-12 21:00:05 -08:00
7a3c884e39
Merge remote-tracking branch 'upstream/master' into int-flags
2021-01-10 22:09:56 -07:00
8eea7c1176
Merge pull request #5231 from ReinUsesLisp/dyn-bindings
...
renderer_vulkan/fixed_pipeline_state: Move enabled bindings to static state
2021-01-08 12:24:46 -08:00