Billy Laws
f490b4545d
video_core/gpu: Correct the size of the puller registers
The puller register array is made up of u32s however the `NUM_REGS` value is the size in bytes, so switch it to avoid making the struct unnecessary large. Also fix a small typo in a comment.
6 years ago
bunnei
05def61398
hle: nvdrv: Rewrite of GPU memory management.
6 years ago
Lioncash
80eedff9e1
vulkan: Resolve -Wmissing-field-initializer warnings
6 years ago
Lioncash
c5bdccfecb
zstd_compression: Make use of std::span in interfaces
Allows condensing the data and size parameters into a single argument.
6 years ago
Lioncash
82b7e5c8ee
surface_params: Make use of designated initializers where applicable
Provides a convenient way to avoid unnecessary zero initializing.
6 years ago
Lioncash
bd9545a3a8
surface_params: Remove redundant assignment
This is a redundant assignment that can be removed.
6 years ago
Lioncash
c705a1db96
surface_params: Replace questionable usages of the comma operator with semicolons
These are bugs waiting to happen.
6 years ago
Lioncash
e17fb5ee97
video_core: Remove unused variables
Silences several compiler warnings about unused variables.
6 years ago
Lioncash
4b369126c4
vk_rasterizer: Remove unused variable in Clear()
The relevant values are already assigned further down in the lambda, so
this can be removed entirely.
6 years ago
Lioncash
059305a6bf
compatible_formats: Add missing header guard
Prevents potential inclusion issues from occurring.
6 years ago
Lioncash
6adc824d9d
video_core: Allow copy elision to take place where applicable
Removes const from some variables that are returned from functions, as
this allows the move assignment/constructors to execute for them.
6 years ago
David Marcec
dd4a02d15c
video_core: Remove redundant pixel format type
We already get the format type before converting shadow formats and during shadow formats.
6 years ago
Lioncash
26c6c71837
buffer_cache: Eliminate redundant map lookup in MarkRegionAsWritten()
We can make use of emplace()'s return value to determine whether or not
we need to perform an increment.
emplace() performs no insertion if an element already exist, so this can
eliminate a find() call.
6 years ago
ReinUsesLisp
a8a2526128
gl_arb_decompiler: Use NV_shader_buffer_{load,store} on assembly shaders
NV_shader_buffer_{load,store} is a 2010 extension that allows GL applications
to use what in Vulkan is known as physical pointers, this is basically C
pointers. On GLASM these is exposed through the LOAD/STORE/ATOM
instructions.
Up until now, assembly shaders were using NV_shader_storage_buffer_object.
These work fine, but have a (probably unintended) limitation that forces
us to have the limit of a single stage for all shader stages. In contrast,
with NV_shader_buffer_{load,store} we can pass GPU addresses to the
shader through local parameters (GLASM equivalent uniform constants, or
push constants on Vulkan). Local parameters have the advantage of being
per stage, allowing us to generate code without worrying about binding
overlaps.
6 years ago
David Marcec
967307d3be
Fix style issues
6 years ago
ReinUsesLisp
81c8f92f2e
vk_device: Fix build error on old MSVC versions
Designated initializers on old MSVC versions fail to build when they
take the address of a constant.
6 years ago
David Marcec
85b591f6f0
Remove duplicate config
6 years ago
David Marcec
f48187449e
Use conditional var
6 years ago
David Marcec
2ba195aa0d
Drop max workers from 8->2 for testing
6 years ago
David Marcec
85d7a8f466
Rebase for per game settings
6 years ago
David Marcec
468bd9c1b0
async shaders
6 years ago
Lioncash
c0650cd82c
macro_hle: Remove unnecessary static keywords
These functions are already in an anonymous namespace which makes the
functions internally linked.
6 years ago
Lioncash
be6b7591d9
macro_hle: Simplify shift expression in HLE_771BB18C62444DA0()
Given the expression involves a 32-bit value, this simplifies down to
just: 0x3ffffff. This is likely a remnant from testing that was never
cleaned up.
Resolves a -Wshift-overflow warning.
6 years ago
Lioncash
cc935d997b
macro_hle: Remove unnecessary std::make_pair calls
The purpose of make_pair is generally to deduce the types within the
pair without explicitly specifying the types, so these usages were
generally unnecessary, particularly when the type is enforced by the
array declaration.
6 years ago
Lioncash
502dbfb9eb
macro: Resolve missing parameter in doxygen comment
Resolves a -Wdocumentation warning.
6 years ago
Lioncash
7785123b1c
wrapper: Make use of designated initializers where applicable
6 years ago
Lioncash
01da386617
vk_texture_cache: Make use of designated initializers where applicable
6 years ago
Lioncash
169759e069
vk_texture_cache: Amend mismatched access masks and indices in UploadBuffer
Discovered while converting relevant parts of the codebase over to
designated initializers.
6 years ago
Lioncash
08d36afd40
vk_swapchain: Make use of designated initializers where applicable
6 years ago
Lioncash
3c060503bc
vk_stream_buffer: Make use of designated initializers where applicable
6 years ago
Lioncash
70147e913f
vk_staging_buffer_pool: Make use of designated initializers where applicable
6 years ago
Lioncash
2025f847bb
vk_shader_util: Make use of designated initializers where applicable
6 years ago
Lioncash
97e7663004
vk_scheduler: Make use of designated initializers where applicable
6 years ago
Lioncash
fd7af52ec3
vk_sampler_cache: Make use of designated initializers where applicable
6 years ago
Lioncash
772b6e4d28
vk_resource_manager: Make use of designated initializers where applicable
6 years ago
Lioncash
8ebd6a21c5
vk_renderpass_cache: Make use of designated initializers where applicable
6 years ago
Lioncash
01f297f2e0
vk_rasterizer: Make use of designated initializers where applicable
6 years ago
Lioncash
c07b0ffe47
vk_query_cache: Make use of designated initializers where applicable
6 years ago
Lioncash
d43e923990
vk_pipeline_cache: Make use of designated initializers where applicable
6 years ago
Lioncash
7d5f93832c
vk_memory_manager: Make use of designated initializers where applicable
6 years ago
Lioncash
75c00c3cb0
vk_image: Make use of designated initializers where applicable
6 years ago
Lioncash
6d165481ad
vk_descriptor_pool: Make use of designated initializers where applicable
6 years ago
Lioncash
fb563e75e9
vk_graphics_pipeline: Resolve narrowing warnings
For whatever reason, VK_TRUE and VK_FALSE aren't defined as having a
VkBool32 type, so we need to cast to it explicitly.
6 years ago
Lioncash
5330ca396d
vk_compute_pipeline: Make use of designated initializers where applicable
6 years ago
Lioncash
757ddd8158
vk_compute_pass: Make use of designated initializers where applicable
Note: Some barriers can't be converted over yet, as they ICE MSVC.
6 years ago
Lioncash
a66a0a6a53
vk_buffer_cache: Make use of designated initializers where applicable
Note: An array within CopyFrom() cannot be converted over yet, as it
ICEs MSVC when converted over.
6 years ago
ReinUsesLisp
210cc0204d
decode/other: Implement S2R.LaneId
This maps to host's thread id.
- Fixes graphical issues on Paper Mario.
6 years ago
ReinUsesLisp
88e57b13e0
gl_arb_decompiler: Execute BAR even when inside control flow
Unlike GLSL, GLASM allows us to call BAR inside control flow.
- Fixes graphical artifacts in Paper Mario.
6 years ago
ReinUsesLisp
a5a72cbd20
renderer_{opengl,vulkan}: Clamp shared memory to host's limit
This stops shaders from failing to build when the exceed host's shared
memory size limit. An error is logged.
6 years ago
Lioncash
969100d41a
shader_cache: Make use of std::erase_if
Now that we use C++20, we can also make use of std::erase_if instead of
needing to do the erase-remove idiom.
6 years ago