aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/engines
AgeCommit message (Collapse)Author
2019-09-10renderer_opengl: Fix sRGB blitsReinUsesLisp
Removes the sRGB hack of tracking if a frame used an sRGB rendertarget to apply at least once to blit the final texture as sRGB. Instead of doing this apply sRGB if the presented image has sRGB. Also enable sRGB by default on Maxwell3D registers as some games seem to assume this.
2019-09-10Merge pull request #2823 from ReinUsesLisp/shr-clampbunnei
shader/shift: Implement SHR wrapped and clamped variants
2019-09-10Merge pull request #2810 from ReinUsesLisp/mme-optbunnei
maxwell_3d: Avoid moving macro_params
2019-09-05gl_rasterizer: Implement image bindingsReinUsesLisp
2019-09-05kepler_compute: Implement texture queriesReinUsesLisp
2019-09-04Revert "Revert #2466" and stub FirmwareCall 4ReinUsesLisp
2019-09-04shader/shift: Implement SHR wrapped and clamped variantsReinUsesLisp
Nvidia defaults to wrapped shifts, but this is undefined behaviour on OpenGL's spec. Explicitly mask/clamp according to what the guest shader requires.
2019-09-04maxwell_3d: Avoid moving macro_paramsReinUsesLisp
2019-09-03Merge pull request #2812 from ReinUsesLisp/f2i-selectorbunnei
shader_ir/conversion: Implement F2I and F2F F16 selector
2019-09-03Merge pull request #2811 from ReinUsesLisp/fsetp-fixbunnei
float_set_predicate: Add missing negation bit for the second operand
2019-09-03Merge pull request #2826 from ReinUsesLisp/macro-bindingbunnei
maxwell_3d: Fix macro binding cursor
2019-09-01Merge pull request #2765 from FernandoS27/dma-fixbunnei
MaxwellDMA: Fixes, corrections and relaxations.
2019-09-01maxwell_3d: Fix macro binding cursorReinUsesLisp
2019-08-30video_core: Silent miscellaneous warnings (#2820)Rodrigo Locatti
* texture_cache/surface_params: Remove unused local variable * rasterizer_interface: Add missing documentation commentary * maxwell_dma: Remove unused rasterizer reference * video_core/gpu: Sort member declaration order to silent -Wreorder warning * fermi_2d: Remove unused MemoryManager reference * video_core: Silent unused variable warnings * buffer_cache: Silent -Wreorder warnings * kepler_memory: Remove unused MemoryManager reference * gl_texture_cache: Add missing override * buffer_cache: Add missing include * shader/decode: Remove unused variables
2019-08-28shader_ir/conversion: Split int and float selector and implement F2F H1ReinUsesLisp
2019-08-27shader_ir/conversion: Implement F2I F16 Ra.H1ReinUsesLisp
2019-08-27float_set_predicate: Add missing negation bit for the second operandReinUsesLisp
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 #2753 from FernandoS27/float-convertbunnei
Shader_Ir: Implement F16 Variants of F2F, F2I, I2F.
2019-08-04shader_ir: Implement NOPReinUsesLisp
2019-07-26Merge pull request #2592 from FernandoS27/sync1bunnei
Implement GPU Synchronization Mechanisms & Correct NVFlinger
2019-07-25MaxwellDMA: Fixes, corrections and relaxations.Fernando Sahmkow
This commit fixes offsets on Linear -> Tiled copies, corrects z pos fortiled->linear copies, corrects bytes_per_pixel calculation in tiled -> linear copies and relaxes some limitations set by latest dma fixes refactors.
2019-07-25Merge pull request #2743 from FernandoS27/surpress-assertbunnei
Downgrade and suppress a series of GPU asserts and debug messages.
2019-07-24Merge pull request #2704 from FernandoS27/conditionalbunnei
maxwell3d: Implement Conditional Rendering
2019-07-22Merge pull request #2734 from ReinUsesLisp/compute-shadersbunnei
gl_rasterizer: Implement compute shaders
2019-07-21Merge pull request #2735 from FernandoS27/pipeline-reworkbunnei
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/half_set_predicate: Implement missing HSETP2 variantsReinUsesLisp
2019-07-18MaxwellDMA/KeplerCopy: Downgrade DMA log message to Trace.Fernando Sahmkow
This log was just to know which games used DMA. It's no longer important.
2019-07-17GL_State: Feedback and fixesFernando Sahmkow
2019-07-17Maxwell3D: Address FeedbackFernando Sahmkow
2019-07-17GL_Rasterizer: Corrections to Clearing.Fernando Sahmkow
2019-07-17Maxwell3D: Correct marking dirtiness on CB uploadFernando Sahmkow
2019-07-17GL_Rasterizer: Rework RenderTarget/DepthBuffer clearingFernando Sahmkow
2019-07-17Maxwell3D: Implement State Dirty Flags.Fernando Sahmkow
2019-07-17Maxwell3D: Rework CBData UploadFernando Sahmkow
2019-07-17Maxwell3D: Rework the dirty system to be more consistant and scaleableFernando Sahmkow
2019-07-17maxwell3d: Implement Conditional RenderingFernando Sahmkow
Conditional Rendering takes care of conditionaly clearing or drawing depending on a set of queries. This PR implements the query checks to stablish if things can be rendered or not.
2019-07-15gl_rasterizer: Implement compute shadersReinUsesLisp
2019-07-15Merge pull request #2695 from ReinUsesLisp/layer-viewportFernando Sahmkow
gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shaders
2019-07-14Merge pull request #2675 from ReinUsesLisp/opengl-buffer-cachebunnei
buffer_cache: Implement a generic buffer cache and its OpenGL backend
2019-07-14Merge pull request #2692 from ReinUsesLisp/tlds-f16Fernando Sahmkow
shader/texture: Add F16 support for TLDS
2019-07-09shader_ir: Implement BRX & BRA.CCFernando Sahmkow
2019-07-07gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shadersReinUsesLisp
This commit implements gl_ViewportIndex and gl_Layer in vertex and geometry shaders. In the case it's used in a vertex shader, it requires ARB_shader_viewport_layer_array. This extension is available on AMD and Nvidia devices (mesa and proprietary drivers), but not available on Intel on any platform. At the moment of writing this description I don't know if this is a hardware limitation or a driver limitation. In the case that ARB_shader_viewport_layer_array is not available, writes to these registers on a vertex shader are ignored, with the appropriate logging.
2019-07-07shader/texture: Add F16 support for TLDSReinUsesLisp
2019-07-06gl_rasterizer: Minor style changesReinUsesLisp
2019-07-05video_core: Implement GPU side SyncpointsFernando Sahmkow
2019-06-24shader_bytecode: Include missing <array>ReinUsesLisp
2019-06-20surface: Correct format S8Z24Fernando Sahmkow