aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/engines
AgeCommit message (Collapse)Author
2020-04-25shader/arithmetic_integer: Implement IADD.XReinUsesLisp
IADD.X takes the carry flag and adds it to the result. This is generally used to emulate 64-bit operations with 32-bit registers.
2020-04-25Merge pull request #3734 from ReinUsesLisp/half-float-modsbunnei
decode/arithmetic_half: Fix HADD2 and HMUL2 absolute and negation bits
2020-04-24Fix -Wdeprecated-copy warning.Markus Wick
2020-04-23decode/arithmetic_half: Fix HADD2 and HMUL2 absolute and negation bitsReinUsesLisp
The encoding for negation and absolute value was wrong. Extracting is now done manually. Similar instructions having different encodings is the rule, not the exception. To keep sanity and readability I preferred to extract the desired bit manually. This is implemented against nxas: https://github.com/ReinUsesLisp/nxas/blob/8dbc38995711cc12206aa370145a3a02665fd989/table.h#L68 That is itself tested against nvdisasm (Nvidia's official disassembler).
2020-04-23Merge pull request #3697 from lioncash/declarationsbunnei
CMakeLists: Enable -Wmissing-declarations on Linux builds
2020-04-22MaxwellDMA: Correct copying on accuracy level.Fernando Sahmkow
2020-04-22FenceManager: Manage syncpoints and rename fences to semaphores.Fernando Sahmkow
2020-04-22Rasterizer: Document SignalFence & ReleaseFences and setup skeletons on Vulkan.Fernando Sahmkow
2020-04-22GPU: Fix rebase errors.Fernando Sahmkow
2020-04-22OpenGL: Implement Fencing backend.Fernando Sahmkow
2020-04-22GPU: Delay Fences.Fernando Sahmkow
2020-04-22GPU: Refactor synchronization on Async GPUFernando Sahmkow
2020-04-22UI: Replasce accurate GPU option for GPU Accuracy LevelFernando Sahmkow
2020-04-21Merge pull request #3718 from ReinUsesLisp/better-pipeline-stateRodrigo Locatti
fixed_pipeline_state: Pack structure, use memcmp and CityHash on it
2020-04-20Merge pull request #3695 from ReinUsesLisp/default-attributesbunnei
maxwell_3d: Initialize format attributes constant as one
2020-04-18fixed_pipeline_state: Pack attribute stateReinUsesLisp
Reduce FixedPipelineState's size from 1384 to 664 bytes
2020-04-16General: Resolve warnings related to missing declarationsLioncash
2020-04-16maxwell_3d: Initialize format attributes constant as oneReinUsesLisp
nouveau expects this to be true but it doesn't set it.
2020-04-15CMakeLists: Specify -Wextra on linux buildsLioncash
Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well.
2020-04-15Merge pull request #3612 from ReinUsesLisp/redFernando Sahmkow
shader/memory: Implement RED.E.ADD and minor changes to ATOM
2020-04-15Merge pull request #3662 from ReinUsesLisp/constant-attrsMat M
gl_rasterizer: Implement constant vertex attributes
2020-04-14shader/arithmetic: Add FCMP_CR variantReinUsesLisp
Adds another variant of FCMP.
2020-04-14gl_rasterizer: Implement constant vertex attributesReinUsesLisp
Credits go to gdkchan from Ryujinx for finding constant attributes are used in retail games.
2020-04-13gl_rasterizer: Implement line widths and smooth linesReinUsesLisp
Implements "legacy" features from OpenGL present on hardware such as smooth lines and line width.
2020-04-12Merge pull request #3578 from ReinUsesLisp/vmnmxFernando Sahmkow
shader/video: Partially implement VMNMX
2020-04-12shader/video: Partially implement VMNMXReinUsesLisp
Implements the common usages for VMNMX. Inputs with a different size than 32 bits are not supported and sign mismatches aren't supported either. VMNMX works as follows: It grabs Ra and Rb and applies a maximum/minimum on them (this is defined by .MX), having in mind the input sign. This result can then be saturated. After the intermediate result is calculated, it applies another operation on it using Rc. These operations are merges, accumulations or another min/max pass. This instruction allows to implement with a more flexible approach GCN's min3 and max3 instructions (for instance).
2020-04-12video_core: Add MSAA registers in 3D engine and TICReinUsesLisp
This adds the registers used for multisampling. It doesn't implement anything for now.
2020-04-09Merge pull request #3601 from ReinUsesLisp/some-shader-encodingsbunnei
video_core/shader: Add some instruction and S2R encodings
2020-04-06shader/memory: Implement RED.E.ADDReinUsesLisp
Implements a reduction operation. It's an atomic operation that doesn't return a value. This commit introduces another primitive because some shading languages might have a primitive for reduction operations.
2020-04-04shader_bytecode: Rename MOV_SYS to S2RReinUsesLisp
2020-04-04shader_bytecode: Add encoding for BARReinUsesLisp
2020-04-04shader_bytecode: Add encoding for VOTE.VTGReinUsesLisp
2020-04-01shader_decompiler: Remove FragCoord.w hack and change IPA implementationReinUsesLisp
Credits go to gdkchan and Ryujinx. The pull request used for this can be found here: https://github.com/Ryujinx/Ryujinx/pull/1082 yuzu was already using the header for interpolation, but it was missing the FragCoord.w multiplication described in the linked pull request. This commit finally removes the FragCoord.w == 1.0f hack from the shader decompiler. While we are at it, this commit renames some enumerations to match Nvidia's documentation (linked below) and fixes component declaration order in the shader program header (z and w were swapped). https://github.com/NVIDIA/open-gpu-doc/blob/master/Shader-Program-Header/Shader-Program-Header.html
2020-03-30shader_decode: merge GlobalAtomicOp to AtomicOpnamkazy
2020-03-28shader_bytecode: Fix I2I_IMM encodingReinUsesLisp
2020-03-27engines/const_buffer_engine_interface: Store image format typeReinUsesLisp
This information is required to properly implement SULD.B. It might also be handy for all image operations, since it would allow us to implement them on devices that require the image format to be specified (on desktop, this would be AMD on OpenGL and Intel on OpenGL and Vulkan).
2020-03-25Merge pull request #3520 from ReinUsesLisp/legacy-varyingsbunnei
gl_shader_decompiler: Implement legacy varyings
2020-03-22apply replay logic to all writes. remove replay from MacroInterpreter::Send ↵namkazy
(@fincs)
2020-03-22maxwell_3d: change declaration ordernamkazy
2020-03-22maxwell_3d: init shadow_statenamkazy
2020-03-22maxwell_3d: this seem more correct.namkazy
2020-03-22maxwell_3d: update comments for shadow ram usagenamkazy
2020-03-22maxwell_3d: track shadow ram ctrl and hw reg valueNguyen Dac Nam
2020-03-22maxwell_3d: implement MME shadow RAMNguyen Dac Nam
2020-03-18kepler_compute: Remove unused variablesReinUsesLisp
2020-03-15Merge pull request #3502 from namkazt/patch-3Rodrigo Locatti
shader_decode: Reimplement BFE instructions
2020-03-15shader/shader_ir: Track usage in input attribute and of legacy varyingsReinUsesLisp
2020-03-13maxwell_3d: Add padding words to XFB entriesReinUsesLisp
Use INSERT_UNION_PADDING_WORDS instead of alignas to ensure a size requirement.
2020-03-13gl_rasterizer: Implement transform feedback bindingsReinUsesLisp
2020-03-13Merge branch 'master' into shader-purgeRodrigo Locatti