ReinUsesLisp
b8bc5d95af
host_shaders: Add Vulkan assembler compute shaders
2020-12-30 02:03:50 -03:00
ReinUsesLisp
82723df129
host_shaders: Add helper to blit depth stencil fragment shader
2020-12-30 02:02:07 -03:00
ReinUsesLisp
627b4c3387
host_shaders: Add texture color blit fragment shader
2020-12-30 02:00:48 -03:00
ReinUsesLisp
5ed139d5a2
host_shaders: Add shaders to present to the swapchain
2020-12-30 01:59:12 -03:00
ReinUsesLisp
90b5661015
host_shaders: Add shaders to convert between depth and color images
2020-12-30 01:48:44 -03:00
ReinUsesLisp
9d5ab4f22b
host_shaders: Add compute shader to copy BC4 as RG32UI to RGBA8
2020-12-30 01:47:08 -03:00
ReinUsesLisp
9915ad809e
host_shaders: Add shader to render a full screen triangle
2020-12-30 01:44:09 -03:00
ReinUsesLisp
8d49d1bc1f
host_shaders: Add pitch linear upload compute shader
2020-12-30 01:41:42 -03:00
ReinUsesLisp
e4e49e7fcb
host_shaders: Add block linear upload compute shaders
2020-12-30 01:39:35 -03:00
ReinUsesLisp
f0b34215b6
host_shaders: Add copyright headers to OpenGL present shaders
2020-12-30 01:35:56 -03:00
ReinUsesLisp
60050f5dd1
video_core/host_shaders: Add support for prebuilt SPIR-V shaders
...
Add support for building SPIR-V shaders from GLSL and generating headers
to include the text of those same GLSL shaders to consume from OpenGL.
2020-12-30 01:29:07 -03:00
bunnei
50675db080
gpu: gpu_thread: Ensure MicroProfile is shutdown on exit.
2020-12-28 21:33:34 -08:00
bunnei
db49c273db
video_core: gpu_thread: Do not wait when system is powered down.
2020-12-28 16:33:48 -08:00
bunnei
1481056e3d
video_core: gpu: Implement synchronous mode using threaded GPU.
2020-12-28 16:33:48 -08:00
bunnei
927976c86c
video_core: gpu: Refactor out synchronous/asynchronous GPU implementations.
...
- We must always use a GPU thread now, even with synchronous GPU.
2020-12-28 16:33:48 -08:00
ReinUsesLisp
4ea0d7a8f1
renderer_vulkan/fixed_pipeline_state: Move enabled bindings to static state
...
Without using VK_EXT_robustness2, we can't consider the 'enabled' (not
null) vertex buffers as dynamic state, as this leads to invalid Vulkan
state. Move this to static state that is always hashed and compared in
the pipeline key.
The bits for enabled vertex buffers are moved into the attribute state
bitfield. This is not 'correct' as it's not an attribute state, but that
struct has bits to spare, and it's used in an array of 32 elements (the
exact same number of vertex buffer bindings).
2020-12-25 23:34:38 -03:00
Rodrigo Locatti
2ee2a45da2
Merge pull request #5226 from ReinUsesLisp/c4715-vc
...
video_core: Enforce C4715 (not all control paths return a value)
2020-12-25 03:11:47 -03:00
ReinUsesLisp
4df8b8a0f5
cmake: Always enable Vulkan
...
Removes the unnecesary burden of maintaining separate #ifdef paths and
allows us sharing generic Vulkan code across APIs.
2020-12-24 21:07:24 -03:00
ReinUsesLisp
472e86da85
video_core: Enforce C4715 (not all control paths return a value)
...
Most of the time people write code that always returns a value,
terminates execution, throws an exception, or uses an unconventional
jump primitive.
This is not always true when we build without asserts on mainline builds.
To avoid introducing undefined behavior on our most used builds, enforce
this warning signalling an error and stopping the build from shipping.
2020-12-24 21:01:23 -03:00
ReinUsesLisp
4d7405712a
vk_shader_decompiler: Silence warning when compiling without asserts
2020-12-24 21:01:09 -03:00
bunnei
79deefc29f
Merge pull request #5157 from lioncash/array-dirty
...
maxwell_3d: Remove unused dirty_pointer array
2020-12-15 00:35:47 -08:00
bunnei
275f63f3ea
Merge pull request #5162 from lioncash/copy-shader
...
gl_shader_decompiler: Elide unnecessary copies within DeclareConstantBuffers()
2020-12-10 00:11:11 -08:00
Rodrigo Locatti
bbf78a6df7
Merge pull request #5164 from lioncash/contains
...
video_core: Make use of ordered container contains() where applicable
2020-12-07 21:55:51 -03:00
Lioncash
909671a055
video_core: Make use of ordered container contains() where applicable
...
With C++20, we can use the more concise contains() member function
instead of comparing the result of the find() call with the end
iterator.
2020-12-07 16:30:39 -05:00
Lioncash
4d6a2247f2
ast: Improve string concat readability in operator()
...
Provides an in-place format string to make it more pleasant to read.
2020-12-07 16:15:28 -05:00
Lioncash
10fe8026a9
gl_shader_decompiler: Elide unnecessary copies within DeclareConstantBuffers()
...
Resolves a -Wrange-loop-analysis warning.
2020-12-07 14:01:52 -05:00
bunnei
72378f4f6c
Merge pull request #5149 from comex/xx-map-interval
...
map_interval: Change field order to address uninitialized field warning
2020-12-07 10:14:02 -08:00
Rodrigo Locatti
73f3e1cbf3
Merge pull request #5159 from lioncash/move-amend
...
shader_ir: std::move node within DeclareAmend()
2020-12-07 04:58:01 -03:00
Lioncash
4704a22c3f
buffer_block: Mark interface as nodiscard where applicable
...
Prevents logic errors from occurring from unused values.
2020-12-07 01:53:40 -05:00
Lioncash
7caec76970
buffer_block: Remove unnecessary includes
...
Reduces the amount of dependencies the header pulls in.
2020-12-07 01:52:16 -05:00
Lioncash
0e7ead8b49
shader_ir: std::move node within DeclareAmend()
...
Same behavior, but elides an unnecessary atomic reference count
increment and decrement.
2020-12-07 00:51:03 -05:00
Lioncash
ea0e85b869
video_core: Remove unnecessary enum class casting in logging messages
...
fmt now automatically prints the numeric value of an enum class member
by default, so we don't need to use casts any more.
Reduces the line noise a bit.
2020-12-07 00:41:50 -05:00
LC
f2ca2f4412
Merge pull request #5152 from comex/xx-override
...
renderer_vulkan: Add missing `override` specifier
2020-12-07 00:07:17 -05:00
LC
60ba2d11df
Merge pull request #5136 from lioncash/video-shadow3
...
video_core: Resolve more variable shadowing scenarios pt.3
2020-12-07 00:06:53 -05:00
Lioncash
a006a490f5
maxwell_3d: Move member variables to end of class
...
Follows our established coding style.
2020-12-06 20:56:00 -05:00
Lioncash
121f585d17
maxwell_3d: Resolve -Wdocumentation warning
...
Removes a documentation comment for a non-existent member.
2020-12-06 20:48:12 -05:00
Lioncash
05038223a7
maxwell_3d: Remove unused dirty_pointer array
...
This is unused and removing it shrinks the structure by 3584 bytes.
2020-12-06 20:46:57 -05:00
comex
2451a59949
renderer_vulkan: Add missing override
specifier
2020-12-06 18:38:52 -05:00
comex
ef14bbc69d
map_interval: Change field order to address uninitialized field warning
...
Clang complains about `new_chunk`'s constructor using the
then-uninitialized `first_chunk` (even though it's just to get a pointer
into it).
2020-12-06 18:37:23 -05:00
comex
38f4b34610
video_core: Adjust NUM
macro to avoid Clang warning
...
The previous definition was:
#define NUM(field_name) (sizeof(Maxwell3D::Regs::field_name) / sizeof(u32))
In cases where `field_name` happens to refer to an array, Clang thinks
`sizeof(an array value) / sizeof(a type)` is an instance of the idiom
where `sizeof` is used to compute an array length. So it thinks the
type in the denominator ought to be the array element type, and warns if
it isn't, assuming this is a mistake.
In reality, `NUM` is not used to get array lengths at all, so there is no
mistake. Silence the warning by applying Clang's suggested workaround
of parenthesizing the denominator.
2020-12-06 18:24:16 -05:00
comex
20f4c9175a
maxwell_dma: Rename RenderEnable::Mode::FALSE and TRUE to avoid name conflict
...
On Apple platforms, FALSE and TRUE are defined as macros by
<mach/boolean.h>, which is included by various system headers.
Note that there appear to be no actual users of the names to fix up.
2020-12-05 17:59:02 -05:00
Lioncash
5db4785535
video_core: Resolve more variable shadowing scenarios pt.3
...
Cleans out the rest of the occurrences of variable shadowing and makes
any further occurrences of shadowing compiler errors.
2020-12-05 16:02:23 -05:00
Lioncash
341083a5e1
video_core: Resolve more variable shadowing scenarios pt.2
...
Migrates the video core code closer to enabling variable shadowing
warnings as errors.
This primarily sorts out shadowing occurrences within the Vulkan code.
2020-12-05 06:39:35 -05:00
bunnei
32984bf3e1
Merge pull request #5124 from lioncash/video-shadow
...
video_core: Resolve more variable shadowing scenarios
2020-12-05 00:48:08 -08:00
bunnei
0c55e7820c
Merge pull request #5127 from FearlessTobi/port-5617
...
Port citra-emu/citra#5617 : "Fix telemetry-related exit crash from use-after-free"
2020-12-04 21:57:40 -08:00
FearlessTobi
a8fce80339
Fix telemetry-related exit crash from use-after-free
...
Co-Authored-By: xperia64 <xperia64@users.noreply.github.com>
2020-12-05 02:42:50 +01:00
Lioncash
4d9a8ef8f1
codec: Remove deprecated usage of AVCodecContext::refcounted_frames
...
This was only necessary for use with the
avcodec_decode_video2/avcoded_decode_audio4 APIs which are also
deprecated.
Given we use avcodec_send_packet/avcodec_receive_frame, this isn't
necessary, this is even indicated directly within the FFmpeg API changes
document here on 2017-09-26:
https://github.com/FFmpeg/FFmpeg/blob/master/doc/APIchanges#L410
This prevents our code from breaking whenever we update to a newer
version of FFmpeg in the future if they ever decide to fully remove this
API member.
2020-12-04 16:23:13 -05:00
Lioncash
2f181b6a90
video_core: Resolve more variable shadowing scenarios
...
Resolves variable shadowing scenarios up to the end of the OpenGL code
to make it nicer to review. The rest will be resolved in a following
commit.
2020-12-04 16:19:09 -05:00
bunnei
70812df905
Merge pull request #5064 from lioncash/node-shadow
...
node: Eliminate variable shadowing
2020-12-04 00:45:33 -08:00
Lioncash
9c0408605e
node: Mark member functions as [[nodiscard]] where applicable
...
Prevents logic bugs from accidentally ignoring the return value.
2020-12-03 16:03:34 -05:00