summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-08-29Merge pull request #2758 from ReinUsesLisp/packed-tidmainline-293bunnei
shader/decode: Implement S2R Tic
2019-08-21shader_ir: Implement VOTEReinUsesLisp
Implement VOTE using Nvidia's intrinsics. Documentation about these can be found here https://developer.nvidia.com/reading-between-threads-shader-intrinsics Instead of using portable ARB instructions I opted to use Nvidia intrinsics because these are the closest we have to how Tegra X1 hardware renders. To stub VOTE on non-Nvidia drivers (including nouveau) this commit simulates a GPU with a warp size of one, returning what is meaningful for the instruction being emulated: * anyThreadNV(value) -> value * allThreadsNV(value) -> value * allThreadsEqualNV(value) -> true ballotARB, also known as "uint64_t(activeThreadsNV())", emits VOTE.ANY Rd, PT, PT; on nouveau's compiler. This doesn't match exactly to Nvidia's code VOTE.ALL Rd, PT, PT; Which is emulated with activeThreadsNV() by this commit. In theory this shouldn't really matter since .ANY, .ALL and .EQ affect the predicates (set to PT on those cases) and not the registers.
2019-08-21Merge pull request #2748 from FernandoS27/align-memorymainline-280mainline-264bunnei
VM_Manager: Align allocated host physical memory to 256bytes
2019-08-21Merge pull request #2769 from FernandoS27/commands-flushmainline-261bunnei
GPU: Flush commands on every dma pusher step.
2019-08-21Merge pull request #2777 from ReinUsesLisp/hsetp2-fe3h-fixmainline-258bunnei
half_set_predicate: Fix HSETP2_C constant buffer offset
2019-08-21Merge pull request #2753 from FernandoS27/float-convertmainline-255bunnei
Shader_Ir: Implement F16 Variants of F2F, F2I, I2F.
2019-08-21Merge pull request #2773 from lioncash/test-unusedmainline-252bunnei
yuzu-tester/yuzu: Remove unused variable
2019-08-18Merge pull request #2747 from lioncash/audiomainline-248bunnei
service/audren_u: Unstub ListAudioDeviceName
2019-08-18Merge pull request #2778 from ReinUsesLisp/nopmainline-245bunnei
shader_ir: Implement NOP
2019-08-18Merge pull request #2768 from ReinUsesLisp/hsetp2-fixmainline-242bunnei
decode/half_set_predicate: Fix predicates
2019-08-16Fixup! #2772 missed this one fileJames Rowe
2019-08-16Merge pull request #2766 from FearlessTobi/port-4849mainline-235James Rowe
Port citra-emu/citra#4849: "Qt: Fixed behaviour of buttons by connecting functors to correct signals"
2019-08-16Merge pull request #2772 from lioncash/uimainline-232James Rowe
yuzu/CMakeLists: Remove qt5_wrap_ui macro usage
2019-08-09yuzu/CMakeLists: Remove qt5_wrap_ui macro usageLioncash
We can simply enable CMAKE_AUTOUIC and let CMake take care of handling the UI code generation for targets. As part of letting CMake automatically handle the header file parsing, we must not name includes with "ui_*" unless they're related to the output of the Qt UIC compiler. Because of this, we need to rename ui_settings, given it would conflict with this restriction.
2019-08-04shader_ir: Implement NOPReinUsesLisp
2019-08-04half_set_predicate: Fix HSETP2_C constant buffer offsetReinUsesLisp
2019-08-02Qt: Fixed behaviour of buttons by connecting functors to correct signalsSilent
Following screens got fixes: - Configure/Debug - Configure/Input
2019-07-29yuzu-tester/yuzu: Correct format stringLioncash
Prevents an invalid formatting exception from being thrown.
2019-07-29yuzu-tester/yuzu: Remove unused variableLioncash
Gets rid of a compilation warning.
2019-07-26GPU: Flush commands on every dma pusher step.Fernando Sahmkow
This commit ensures that the host gpu is constantly fed with commands to work with, while the guest gpu keeps producing the rest of the commands. This reduces syncing time between host and guest gpu.
2019-07-26Merge pull request #2592 from FernandoS27/sync1mainline-200bunnei
Implement GPU Synchronization Mechanisms & Correct NVFlinger
2019-07-26decode/half_set_predicate: Fix predicatesReinUsesLisp
2019-07-25Merge pull request #2739 from lioncash/cflowmainline-195bunnei
video_core/control_flow: Minor changes/warning cleanup
2019-07-25Merge pull request #2737 from FernandoS27/track-fixmainline-192bunnei
Shader_Ir: Correct tracking to track from right to left
2019-07-25Merge pull request #2689 from lioncash/tlmainline-189bunnei
yuzu/main: Make error messages within OnCoreError more localization-friendly
2019-07-25Merge pull request #2743 from FernandoS27/surpress-assertmainline-186bunnei
Downgrade and suppress a series of GPU asserts and debug messages.
2019-07-24Merge pull request #2704 from FernandoS27/conditionalmainline-181bunnei
maxwell3d: Implement Conditional Rendering
2019-07-22shader/decode: Implement S2R TicReinUsesLisp
2019-07-22Merge pull request #2734 from ReinUsesLisp/compute-shadersmainline-168bunnei
gl_rasterizer: Implement compute shaders
2019-07-21Merge pull request #2735 from FernandoS27/pipeline-reworkmainline-165bunnei
Rework Dirty Flags in GPU Pipeline, Optimize CBData and Redo Clearing mechanism
2019-07-20Shader_Ir: Implement F16 Variants of F2F, F2I, I2F.Fernando Sahmkow
This commit takes care of implementing the F16 Variants of the conversion instructions and makes sure conversions are done.
2019-07-20Maxwell3D: Reorganize and address feedbackFernando Sahmkow
2019-07-19Shader_Ir: Change Debug Asserts for Log WarningsFernando Sahmkow
2019-07-19Common/Alignment: Add noexcept where required.Fernando Sahmkow
2019-07-19shader/half_set_predicate: Fix HSETP2 implementationReinUsesLisp
2019-07-19shader/half_set_predicate: Implement missing HSETP2 variantsReinUsesLisp
2019-07-19Kernel: Address FeedbackFernando Sahmkow
2019-07-19Common: Correct alignment allocator to work on C++14 or higher.Fernando Sahmkow
2019-07-19VM_Manager: Align allocated memory to 256bytesFernando Sahmkow
This commit ensures that all backing memory allocated for the Guest CPU is aligned to 256 bytes. This due to how gpu memory works and the heavy constraints it has in the alignment of physical memory.
2019-07-19service/audren_u: Handle audio USB output revision queries in ↵Lioncash
ListAudioDeviceName() Audio devices use the supplied revision information in order to determine if USB audio output is able to be supported. In this case, we can only really handle using this revision information in ListAudioDeviceName(), where it checks if USB audio output is supported before supplying it as a device name. A few other scenarios exist where the revision info is checked, such as: - Early exiting from SetAudioDeviceOutputVolume if USB audio is attempted to be set when that device is unsupported. - Early exiting and returning 0.0f in GetAudioDeviceOutputVolume when USB output volume is queried and it's an unsupported device. - Falling back to AHUB headphones in GetActiveAudioDeviceName when the device type is USB output, but is unsupported based off the revision info. In order for these changes to also be implemented, a few other changes to the interface need to be made. Given we now properly handle everything about ListAudioDeviceName(), we no longer need to describe it as a stubbed function.
2019-07-19service/audren_u: Move revision testing code out of AudRenULioncash
The revision querying facilities are used by more than just audren. e.g. audio devices can use this to test whether or not USB audio output is supported. This will be used within the following change.
2019-07-19service/audio: Remove global system accessorsLioncash
Trims out the lingering reliance on global state out of the audio code.
2019-07-19service/audren_u: Remove unnecessary return value from ↵Lioncash
GetActiveAudioDeviceName() This service function only ever returns a result and nothing more.
2019-07-19service/audren_u: Report proper device namesLioncash
AudioDevice and AudioInterface aren't valid device names on the Switch. We should also be returning consistent names in GetActiveAudioDeviceName(). While we're at it, we can also handle proper name output in ListAudioDeviceName, by returning all the available devices on the Switch.
2019-07-18video_core/control_flow: Provide operator!= for types with operator==Lioncash
Provides operational symmetry for the respective structures.
2019-07-18video_core/control_flow: Prevent sign conversion in TryGetBlock()Lioncash
The return value is a u32, not an s32, so this would result in an implicit signedness conversion.
2019-07-18video_core/control_flow: Remove unnecessary BlockStack copy constructorLioncash
This is the default behavior of the copy constructor, so it doesn't need to be specified. While we're at it we can make the other non-default constructor explicit.
2019-07-18video_core/control_flow: Use std::move where applicableLioncash
Results in less work being done where avoidable.
2019-07-18video_core/control_flow: Use the prefix variant of operator++ for iteratorsLioncash
Same thing, but potentially allows a standard library implementation to pick a more efficient codepath.
2019-07-18video_core/control_flow: Use empty() member function for checking emptinessLioncash
It's what it's there for.