aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2019-05-19Revert #2466Fernando Sahmkow
This reverts a tested behavior on delay slots not exiting if the exit flag is set. Currently new tests are required in order to ensure this behavior.
2019-05-19Merge pull request #2441 from ReinUsesLisp/al2pbunnei
shader: Implement AL2P and ALD.PHYS
2019-05-19Merge pull request #2491 from FernandoS27/dma-fixHexagon12
Dma_pusher: ASSERT on empty command_list
2019-05-19Merge pull request #2452 from FernandoS27/raster-cache-fixHexagon12
Correct possible error on Rasterizer Caches
2019-05-19Merge pull request #2497 from lioncash/shader-irHexagon12
shader/shader_ir: Minor changes
2019-05-19Merge pull request #2495 from lioncash/cacheHexagon12
gl_shader_disk_cache: Minor cleanup
2019-05-19Dma_pusher: ASSERT on empty command_listFernando Sahmkow
This is a measure to avoid crashes on command list reading as an empty command_list is considered a NOP.
2019-05-19Merge pull request #2467 from lioncash/moveHexagon12
video_core/gpu_thread: Remove redundant copy constructor for CommandDataContainer
2019-05-19Merge pull request #2466 from yuzu-emu/mme-exit-delay-slotHexagon12
GPU/MMEInterpreter: Ignore the 'exit' flag when it's executed inside a delay slot.
2019-05-19Merge pull request #2468 from lioncash/deductionHexagon12
yuzu: Remove explicit types from locks where applicable
2019-05-19Merge pull request #2472 from FernandoS27/ticHexagon12
maxwell_3d: reduce severity of different component formats assert.
2019-05-19Merge pull request #2469 from lioncash/copyableHexagon12
video_core/engines/maxwell_3d: Add is_trivially_copyable_v check for Regs
2019-05-19Merge pull request #2470 from lioncash/ranged-forSebastian Valle
video_core/engines/maxwell_3d: Simplify for loops into ranged for loops within InitializeRegisterDefaults()
2019-05-19Merge pull request #2480 from ReinUsesLisp/fix-quadsHexagon12
gl_rasterizer: Pass the right number of array quad vertices count
2019-05-19Merge pull request #2483 from ReinUsesLisp/fix-point-sizeHexagon12
gl_rasterizer: Limit OpenGL point size to a minimum of 1
2019-05-19Merge pull request #2471 from lioncash/engine-uploadSebastian Valle
video_core/engines/engine_upload: Minor tidying
2019-05-19Merge pull request #2484 from ReinUsesLisp/triangle-fanSebastian Valle
maxwell_to_gl: Add TriangleFan primitive topology
2019-05-19shader/shader_ir: Remove unnecessary inline specifiersLioncash
constexpr internally links by default, so the inline specifier is unnecessary.
2019-05-19shader/shader_ir: Simplify constructors for OperationNodeLioncash
Many of these constructors don't even need to be templated. The only ones that need to be templated are the ones that actually make use of the parameter pack. Even then, since std::vector accepts an initializer list, we can supply the parameter pack directly to it instead of creating our own copy of the list, then copying it again into the std::vector.
2019-05-19shader/shader_ir: Remove unnecessary template parameter packs from ↵Lioncash
Operation() overloads where applicable These overloads don't actually make use of the parameter pack, so they can be turned into regular non-template function overloads.
2019-05-19shader/shader_ir: Mark tracking functions as const member functionsLioncash
These don't actually modify instance state, so they can be marked as const member functions
2019-05-19shader/shader_ir: Place implementations of constructor and destructor in cpp ↵Lioncash
file Given the class contains quite a lot of non-trivial types, place the constructor and destructor within the cpp file to avoid inlining construction and destruction code everywhere the class is used.
2019-05-19gl_shader_gen: std::move objects where applicableLioncash
Avoids performing copies into the pair being returned. Instead, we can just move the resources into the pair, avoiding the need to make copies of both the std::string and ShaderEntries struct.
2019-05-19gl_shader_disk_cache: in-class initialize virtual file offset of ↵Lioncash
ShaderDiskCacheOpenGL Given the offset is assigned a fixed value in the constructor, we can just assign it directly and get rid of the need to write the name of the variable again in the constructor initializer list.
2019-05-19gl_shader_disk_cache: Default ShaderDiskCacheOpenGL's destructor in the cpp fileLioncash
Given the disk shader cache contains non-trivial types, we should default it in the cpp file in order to prevent inlining of the complex destruction logic.
2019-05-19gl_shader_disk_cache: Make hash specializations noexceptLioncash
The standard library expects hash specializations that don't throw exceptions. Make this explicit in the type to allow selection of better code paths if possible in implementations.
2019-05-19gl_shader_disk_cache: Remove redundant code string construction in ↵Lioncash
LoadDecompiledEntry() We don't need to load the code into a vector and then construct a string over the data. We can just create a string with the necessary size ahead of time, and read the data directly into it, getting rid of an unnecessary heap allocation.
2019-05-19gl_shader_disk_cache: Make variable non-const in decompiled entry caseLioncash
std::move does nothing when applied to a const variable. Resources can't be moved if the object is immutable. With this change, we don't end up making several unnecessary heap allocations and copies.
2019-05-19gl_shader_disk_cache: Special-case boolean handlingLioncash
Booleans don't have a guaranteed size, but we still want to have them integrate into the disk cache system without needing to actually use a different type. We can do this by supplying non-template overloads for the bool type. Non-template overloads always have precedence during function resolution, so this is safe to provide. This gets rid of the need to smatter ternary conditionals, as well as the need to use u8 types to store the value in.
2019-05-18gl_rasterizer: Limit OpenGL point size to a minimum of 1ReinUsesLisp
2019-05-17maxwell_to_gl: Add TriangleFan primitive topologyReinUsesLisp
2019-05-17gl_rasterizer: Pass the right number of array quad vertices countReinUsesLisp
2019-05-14maxwell_3d: reduce sevirity of different component formats assert.Fernando Sahmkow
This was reduced due to happening on most games and at such constant rate that it affected performance heavily for the end user. In general, we are well aware of the assert and an implementation is already planned.
2019-05-14video_core/engines/engine_upload: Amend constructor initializer list orderLioncash
Silences a -Wreorder warning.
2019-05-14video_core/engines/engine_upload: Default destructor in the cpp fileLioncash
Avoids inlining destruction logic where applicable, and also makes forward declarations not cause unexpected compilation errors depending on where the State class is used.
2019-05-14video_core/engines/engine_upload: Remove unnecessary const on parameters in ↵Lioncash
function declarations These only apply in the definition of the function. They can be omitted from the declaration.
2019-05-14video_core/engines/engine_upload: Remove unnecessary includesLioncash
2019-05-14video_core/engines/maxwell3d: Get rid of three magic values in CallMethod()Lioncash
We can use the named constant instead of using 32 directly.
2019-05-14video_core/engines/maxwell_3d: Simplify for loops into ranged for loops ↵Lioncash
within InitializeRegisterDefaults() Lessens the amount of code that needs to be read, and gets rid of the need to introduce an indexing variable. Instead, we just operate on the objects directly.
2019-05-14video_core/engines/maxwell_3d: Add is_trivially_copyable_v check for RegsLioncash
std::memset is used to clear the entire register structure, which requires that the Regs struct be trivially copyable (otherwise undefined behavior is invoked). This prevents the case where a non-trivial type is potentially added to the struct.
2019-05-14yuzu: Remove explicit types from locks where applicableLioncash
With C++17's deduction guides, the type doesn't need to be explicitly specified within locking primitives anymore.
2019-05-14video_core/gpu_thread: Remove redundant copy constructor for ↵Lioncash
CommandDataContainer std::move within a copy constructor (on a data member that isn't mutable) will always result in a copy. Because of that, the behavior of this copy constructor is identical to the one that would be generated automatically by the compiler, so we can remove it.
2019-05-14Merge pull request #2462 from lioncash/video-mmMat M
video_core/memory_manager: Minor tidying
2019-05-14Merge pull request #2461 from lioncash/unused-varMat M
video_core: Remove a few unused variables and functions
2019-05-13Merge pull request #2413 from FernandoS27/opt-gpuRodrigo Locatti
Rasterizer Cache: refactor flushing & optimize memory usage of surfaces
2019-05-12GPU/MMEInterpreter: Ignore the 'exit' flag when it's executed inside a delay ↵Sebastian Valle
slot. It seems instructions marked with the 'exit' flag will not cause an exit when executed within a delay slot. This was hwtested by fincs.
2019-05-09video_core/memory_manager: Mark IsBlockContinuous() as a const member functionLioncash
Corrects the typo in its name and marks the function as a const member function, given it doesn't actually modify memory manager state.
2019-05-09video_core/memory_manager: Mark the constructor as explicitLioncash
Prevents implicit converting constructions of the memory manager.
2019-05-09video_core/memory_manager: Default the destructor within the cpp fileLioncash
Makes the class less surprising when it comes to forward declaring the type, and also prevents inlining the destruction code of the class, given it contains non-trivial types.
2019-05-09video_core/memory_manager: Amend doxygen commentsLioncash
Corrects references to non-existent parameters and corrects typos.