aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2020-12-30host_shaders: Add texture color blit fragment shaderReinUsesLisp
2020-12-30host_shaders: Add shaders to present to the swapchainReinUsesLisp
2020-12-30host_shaders: Add shaders to convert between depth and color imagesReinUsesLisp
2020-12-30host_shaders: Add compute shader to copy BC4 as RG32UI to RGBA8ReinUsesLisp
2020-12-30host_shaders: Add shader to render a full screen triangleReinUsesLisp
2020-12-30host_shaders: Add pitch linear upload compute shaderReinUsesLisp
2020-12-30host_shaders: Add block linear upload compute shadersReinUsesLisp
2020-12-30host_shaders: Add copyright headers to OpenGL present shadersReinUsesLisp
2020-12-30video_core/host_shaders: Add support for prebuilt SPIR-V shadersReinUsesLisp
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-28gpu: gpu_thread: Ensure MicroProfile is shutdown on exit.bunnei
2020-12-28video_core: gpu_thread: Do not wait when system is powered down.bunnei
2020-12-28video_core: gpu: Implement synchronous mode using threaded GPU.bunnei
2020-12-28video_core: gpu: Refactor out synchronous/asynchronous GPU implementations.bunnei
- We must always use a GPU thread now, even with synchronous GPU.
2020-12-25renderer_vulkan/fixed_pipeline_state: Move enabled bindings to static stateReinUsesLisp
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-25Merge pull request #5226 from ReinUsesLisp/c4715-vcRodrigo Locatti
video_core: Enforce C4715 (not all control paths return a value)
2020-12-24cmake: Always enable VulkanReinUsesLisp
Removes the unnecesary burden of maintaining separate #ifdef paths and allows us sharing generic Vulkan code across APIs.
2020-12-24video_core: Enforce C4715 (not all control paths return a value)ReinUsesLisp
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-24vk_shader_decompiler: Silence warning when compiling without assertsReinUsesLisp
2020-12-15Merge pull request #5157 from lioncash/array-dirtybunnei
maxwell_3d: Remove unused dirty_pointer array
2020-12-10Merge pull request #5162 from lioncash/copy-shaderbunnei
gl_shader_decompiler: Elide unnecessary copies within DeclareConstantBuffers()
2020-12-07Merge pull request #5164 from lioncash/containsRodrigo Locatti
video_core: Make use of ordered container contains() where applicable
2020-12-07video_core: Make use of ordered container contains() where applicableLioncash
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-07ast: Improve string concat readability in operator()Lioncash
Provides an in-place format string to make it more pleasant to read.
2020-12-07gl_shader_decompiler: Elide unnecessary copies within DeclareConstantBuffers()Lioncash
Resolves a -Wrange-loop-analysis warning.
2020-12-07Merge pull request #5149 from comex/xx-map-intervalbunnei
map_interval: Change field order to address uninitialized field warning
2020-12-07Merge pull request #5159 from lioncash/move-amendRodrigo Locatti
shader_ir: std::move node within DeclareAmend()
2020-12-07buffer_block: Mark interface as nodiscard where applicableLioncash
Prevents logic errors from occurring from unused values.
2020-12-07buffer_block: Remove unnecessary includesLioncash
Reduces the amount of dependencies the header pulls in.
2020-12-07shader_ir: std::move node within DeclareAmend()Lioncash
Same behavior, but elides an unnecessary atomic reference count increment and decrement.
2020-12-07video_core: Remove unnecessary enum class casting in logging messagesLioncash
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-07Merge pull request #5152 from comex/xx-overrideLC
renderer_vulkan: Add missing `override` specifier
2020-12-07Merge pull request #5136 from lioncash/video-shadow3LC
video_core: Resolve more variable shadowing scenarios pt.3
2020-12-06maxwell_3d: Move member variables to end of classLioncash
Follows our established coding style.
2020-12-06maxwell_3d: Resolve -Wdocumentation warningLioncash
Removes a documentation comment for a non-existent member.
2020-12-06maxwell_3d: Remove unused dirty_pointer arrayLioncash
This is unused and removing it shrinks the structure by 3584 bytes.
2020-12-06renderer_vulkan: Add missing `override` specifiercomex
2020-12-06map_interval: Change field order to address uninitialized field warningcomex
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-06video_core: Adjust `NUM` macro to avoid Clang warningcomex
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-05maxwell_dma: Rename RenderEnable::Mode::FALSE and TRUE to avoid name conflictcomex
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-05video_core: Resolve more variable shadowing scenarios pt.3Lioncash
Cleans out the rest of the occurrences of variable shadowing and makes any further occurrences of shadowing compiler errors.
2020-12-05video_core: Resolve more variable shadowing scenarios pt.2Lioncash
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-05Merge pull request #5124 from lioncash/video-shadowbunnei
video_core: Resolve more variable shadowing scenarios
2020-12-04Merge pull request #5127 from FearlessTobi/port-5617bunnei
Port citra-emu/citra#5617: "Fix telemetry-related exit crash from use-after-free"
2020-12-05Fix telemetry-related exit crash from use-after-freeFearlessTobi
Co-Authored-By: xperia64 <xperia64@users.noreply.github.com>
2020-12-04codec: Remove deprecated usage of AVCodecContext::refcounted_framesLioncash
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-04video_core: Resolve more variable shadowing scenariosLioncash
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-04Merge pull request #5064 from lioncash/node-shadowbunnei
node: Eliminate variable shadowing
2020-12-03node: Mark member functions as [[nodiscard]] where applicableLioncash
Prevents logic bugs from accidentally ignoring the return value.
2020-12-03node: Eliminate variable shadowingLioncash
2020-12-03vp9/vic: Resolve pessimizing movesLioncash
Removes the usage of moves that don't result in behavior different from a copy, or otherwise would prevent copy elision from occurring.