Commit Graph

595 Commits (aacc3a4a59a9a66c3768c8cbba0ab4c03a4e5920)

Author SHA1 Message Date
Subv e43eb130d4 HWRasterizer: Implemented stencil op 1 (GL_ZERO) 10 years ago
Subv fef1462371 SWRasterizer: Implemented stencil action 1 (GL_ZERO).
Verified with hwtests.
10 years ago
Subv b3e530d005 SWRasterizer: Removed a todo. Verified with hwtests. 10 years ago
Subv 8e6336d96b SWRenderer: The stencil depth_pass action is executed even if depth testing is disabled.
The HW renderer already did this.
10 years ago
Subv e74825e3d0 Rasterizer: Abstract duplicated stencil code into a lambda. 10 years ago
Subv 46f660a789 GLRasterizer: Implemented stencil testing in the hw renderer. 10 years ago
Subv 186873420f GPU/Rasterizer: Corrected the stencil implementation.
Verified the behavior with hardware tests.
10 years ago
aroulin f3e8f42718 Shader: implement SGE, SGEI and SLT in JIT 10 years ago
aroulin 863730f6a7 Shader: implement SGE, SGEI in interpreter 10 years ago
bunnei 3c5ff418ca Merge pull request #1047 from aroulin/shader-ex2-lg2
Shader: Save caller-saved registers in JIT before a CALL
10 years ago
aroulin 2f9eb98f03 Shader: Save caller-saved registers in JIT before a CALL 10 years ago
bunnei 026379ed55 Merge pull request #1037 from aroulin/shader-ex2-lg2
Shader: Implement EX2 and LG2 in interpreter/JIT
10 years ago
bunnei 1f18c9f8dd Merge pull request #1034 from yuriks/rg8-textures
videocore: Added RG8 texture support
10 years ago
aroulin 7d3a6016d6 Shader: implement EX2 and LG2 in JIT 10 years ago
LittleWhite 9d6748fa94 Fix Linux GCC 4.9 build (complaining about undeclared memset) 10 years ago
aroulin 638e47c04d Shader: implement EX2 and LG2 in interpreter 10 years ago
Tony Wasserka 96820ae42a Build fix for Debug configurations. 10 years ago
Tony Wasserka f5144e6c10 Merge pull request #997 from Lectem/cmdlist_full_debug
citra-qt: Improve pica command list widget (add mask, fix some issues)
10 years ago
Tony Wasserka 33ba604fd9 Introduce a shader tracer to allow inspection of input/output values for each processed instruction. 10 years ago
Tony Wasserka 2e3601f415 Pica/DebugUtils: Include uniform information into shader dumps. 10 years ago
Tony Wasserka 4cb302c8ae citra-qt: Improve shader debugger.
Now supports dumping the current shader and recognizes a larger number of output semantics.
10 years ago
Patrick Martin 5b65d95310 videocore: Added RG8 texture support 10 years ago
bunnei db97090cad Shader: Use a POD struct for registers. 10 years ago
bunnei b39c053785 Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64. 10 years ago
bunnei 0ee00861f6 Common: Cleanup CPU capability detection code. 10 years ago
bunnei a1942238f5 Common: Move cpu_detect to x64 directory. 10 years ago
bunnei bd7e691f78 x64: Refactor to remove fake interfaces and general cleanups. 10 years ago
bunnei cfb354f11f JIT: Support negative address offsets. 10 years ago
bunnei 094ae6fadb Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.
- Config: Add an option for selecting to use shader JIT or interpreter.
- Qt: Add a menu option for enabling/disabling the shader JIT.
10 years ago
bunnei d67e2f78b7 Common: Added MurmurHash3 hash function for general-purpose use. 10 years ago
bunnei 3f69c2039d Shader: Define a common interface for running vertex shader programs. 10 years ago
bunnei 18527b9e21 Shader: Move shader code to its own subdirectory, "shader". 10 years ago
bunnei 642b9b5030 GPU: Refactor "VertexShader" namespace to "Shader".
- Also renames "vertex_shader.*" to "shader_interpreter.*"
10 years ago
bunnei 35f3360663 Merge pull request #893 from linkmauve/remove-uint._t-int._t
Replace standard uint*_t and int*_t with CommonTypes’ u* and s* types
10 years ago
Emmanuel Gil Peyrot 5115d0177e ARM Core, Video Core, CitraQt, Citrace: Use CommonTypes types instead of the standard u?int*_t types. 10 years ago
Yuri Kunde Schlesner 254582aa35 OpenGL: Fix state tracking in situations with reused object handles
If an OpenGL object is created, bound to a binding using the state
tracker, and then destroyed, a newly created object can be assigned the
same numeric handle by OpenGL. However, even though it is a new object,
and thus needs to be bound to the binding again, the state tracker
compared the current and previous handles and concluded that no change
needed to be made, leading to failure to bind objects in certain cases.

This manifested as broken text in VVVVVV, which this commit fixes along
with similar texturing problems in other games.
10 years ago
Yuri Kunde Schlesner ff68db61bc OpenGL: Remove redundant texture.enable_2d field from OpenGLState
All uses of this field where it's false can just set the texture id to 0
instead.
10 years ago
Yuri Kunde Schlesner a96502edd3 Videocore: Implement simple vertex caching
This gives a ~2/3 reduction in the amount of vertices that need to be
processed through the vertex loaders and the vertex shader, yielding a
good speedup.
10 years ago
bunnei bb7eb5c574 Merge pull request #1006 from yuriks/fb-commit-profile
OpenGL: Add a profiler category measuring framebuffer readback
10 years ago
bunnei 31c1bb901b Merge pull request #963 from yuriks/gpu-fixes
Misc. GPU vertex loading fixes
10 years ago
Yuri Kunde Schlesner 428154da45 OpenGL: Add a profiler category measuring framebuffer readback 10 years ago
bunnei e1a3fed6ff Merge pull request #991 from yuriks/globjects
OpenGL: Make OpenGL object resource wrappers fully inline
10 years ago
bunnei cb76453ec4 Merge pull request #992 from yuriks/hot-path-debug
VideoCore: #ifdef out some debugging routines
10 years ago
Lectem facb2555a9 citra-qt/debug_utils: Use lock_guard everywhere
unique_lock were being used as lock_guards.
Also replaced manual lock/unlock by lock_guard for harmonization.
10 years ago
Lectem e663751f8b citra-qt/command list: Add mask column 10 years ago
Yuri Kunde Schlesner 1762267de4 OpenGL: Make OpenGL object resource wrappers fully inline
The functions are so simple that having them separate only bloats the
code and hinders optimization.
10 years ago
Tony Wasserka 72237a9305 Merge pull request #987 from yuriks/regnames
Videocore: Don't reinitialize register name map on every query.
10 years ago
Yuri Kunde Schlesner e130dac7de Videocore: Don't reinitialize register name map on every query
This greatly speeds up the command list debug widget.
10 years ago
Yuri Kunde Schlesner 4909a1486e Videocore: Simplify variables in vertex shader interpreter
Simplifies the code and gives a tiny speed-up.
10 years ago
Yuri Kunde Schlesner 877d2a0e48 Videocore: Replace std::stack in shader interpreter with static_vector
Shaves off 1/3rd of the vertex shader time in Fire Emblem
10 years ago
Yuri Kunde Schlesner 13347997ba VideoCore: #ifdef out some debugging routines
Some disabled debugging functionality was being called from rendering
routines in VideoCore. Although disabled, many of them still allocated
memory or did some extra work that was enough to show up in a profiler.
Gives a slight (~2ms) speedup.
10 years ago
Yuri Kunde Schlesner 00529c71d4 Address error that remained in last merge 10 years ago
Yuri Kunde Schlesner 9a0f9f12cd Merge pull request #892 from zawata/another-warning-fixes
Yet More Warning Fixes
10 years ago
Tony Wasserka 1760eb5ca6 Merge pull request #980 from Subv/more_breakpoints
Qt/GPU Breakpoints: Added three more breakpoint types.
10 years ago
Yuri Kunde Schlesner 1fe9b0b82e VideoCore: Fix values of unset components in input attribute arrays
If an input attribute array had a field with less than 4 components, the
remaining components were left unset if not specified by a default
vertex attribute. If neither mechanism would set a component, it would
assume a garbage value.

It has been verified that the hardware behavior is to instead to set the
missing components from the fixed default of (0 0 0 1). The default
vertex attribute values aren't used at all if a vertex array is
specified for that attribute.

Fixes UI graphics on Fire Emblem: Awakening, a small texturing glitch
when selecting a character in Cubic Ninja, as well as eliminating the
unset-W hack which was required for Ocarina of Time to not have
garbled triangles.

This change has been tested against hardware.
10 years ago
Yuri Kunde Schlesner 4e09202226 VideoCore: Saturate vertex colors before interpolating
During testing, it was discovered that hardware does not interpolate
colors output by the vertex shader as-is. Rather, it drops the sign and
saturates the value to 1.0. This is done before interpolation, such that
(e.g.) interpolating outputs 1.5 and -0.5 is equivalent to as if the
shader had output the values 1.0 and 0.5 instead, with the interpolated
value never crossing 0.0.

This change has been tested against hardware.
10 years ago
Subv 6c0ea5f5e8 Qt/GPU Breakpoints: Added three more breakpoint types:
* IncomingDisplayTransfer: Triggered just before a display transfer is performed.
* GSPCommandProcessed: Triggered right after a GSP command is processed.
* BufferSwapped: Triggered when the frames flip
10 years ago
bunnei cea45af64d Merge pull request #977 from yuriks/glenable-tex2d
GL Renderer: Remove erroneous glEnable(GL_TEXTURE_2D) calls
10 years ago
Subv 7b4961e968 Rasterizer/GL: Set the border color when binding a texture. 10 years ago
Yuri Kunde Schlesner e5c4fe0098 GL Renderer: Remove erroneous glEnable(GL_TEXTURE_2D) calls
In OpenGL 3, texturing is always enabled, and this call is invalid.
While it produced no effect in the rest of the execution, it wouldn't
have the intended effect of disabling texturing for that unit. Instead
bind a null texture to the unit.
10 years ago
bunnei 3a5352baf8 Merge pull request #968 from Subv/texture_filtering
GPU: Added registers for min and mag texture filters
10 years ago
Subv 009e34f08a GPU: Added registers for min and mag texture filters and implemented them in the hw renderer. 10 years ago
Tony Wasserka aa6dfdb827 Merge pull request #929 from neobrain/geoshader_definitions
Pica/Shader: Add geometry shader definitions.
10 years ago
bunnei 9a3b21bcf9 Merge pull request #944 from Subv/spam
GLRasterizer: Don't try to get a pointer to the depth buffer if it doesn't exist.
10 years ago
Yuri Kunde Schlesner ae985bf500 Pica: Correct switched S/T texture wrapping registers
This was found and hwtested by Lectem
10 years ago
Yuri Kunde Schlesner 5a75cf8fd2 Pica: Fix DP3 instruction, which wasn't assigning to the w component 10 years ago
Subv a694caeee0 GLRasterizer: Don't try to get a pointer to the depth buffer if it doesn't exist. 10 years ago
Subv 3600c32483 Rasterizer/Textures: Fixed a bug where the I4 format would get twice the real stride.
Also added its name to the texture viewer widget
10 years ago
zawata 6933a50aeb Vertex Shader : Undo casting 10 years ago
zawata 04756bdaf6 Video_Core : Type fixes 10 years ago
zawata f7050021de Video_Core: Finally fix pesky warning 10 years ago
zawata 017437e8d7 Video_Core : Change Tabs to Spaces
This really should be universalized, I keep getting errors creating
commits because lines I've edited use tabs instead of spaces(and yes I
did read the contributing guide and i know they are supposed to be
spaces)
10 years ago
zawata 716120da3d Video_Core : Fix Conversion Warnings 10 years ago
Tony Wasserka 33568494af Pica/Shader: Add geometry shader definitions. 10 years ago
Tony Wasserka 0ea2319f3c Merge pull request #931 from neobrain/move_default_attr_handler
Pica/CommandProcessor: Move default attribute setup to the proper position.
10 years ago
Tony Wasserka aeec12dc33 Pica/CommandProcessor: Move default attribute setup to the proper position. 10 years ago
Tony Wasserka d2c3ecc8d8 Pica/Clipper: Output proper number of triangles in debugging logs. 10 years ago
Lectem d08e9b29e2 VideoCore: Implement the DOT3_RGB combiner 10 years ago
Tony Wasserka 5e79706db2 Pica: Implement stencil testing. 10 years ago
Tony Wasserka 0799b40caa Clean up command_processor.cpp. 10 years ago
Tony Wasserka 902fa4da52 Add CiTrace recording support.
This is exposed in the GUI as a new "CiTrace Recording" widget.

Playback is implemented by a standalone 3DS homebrew application (which only runs reliably within Citra currently; on an actual 3DS it will often crash still).
10 years ago
Tony Wasserka ae7120f5d9 Merge pull request #907 from Lectem/clamp_to_border
Add GL_CLAMP_TO_BORDER support.
10 years ago
Lectem 58d1c6398e Added GL_CLAMP_TO_BORDER support 10 years ago
Emmanuel Gil Peyrot 4964a359e1 Core: Cleanup hw includes. 10 years ago
Emmanuel Gil Peyrot f48b28ad27 Core, VideoCore: Replace or fix exit() calls. 10 years ago
Emmanuel Gil Peyrot 45c4781544 CitraQt: Cleanup includes. 10 years ago
Emmanuel Gil Peyrot 22ae87530b Common: Cleanup emu_window includes. 10 years ago
Emmanuel Gil Peyrot 596b7c4f63 Common: Cleanup key_map includes. 10 years ago
zawata 92bfec0566 VideoCore: Fix floating point warning 10 years ago
Emmanuel Gil Peyrot 94fc644430 VideoCore: Log the GL driver’s vendor and renderer. 10 years ago
Yuri Kunde Schlesner 9b7d85a4f5 video_core: add extra braces around initializer
Trivial change and fixes several warnings in the clang build.
10 years ago
tfarley 26bc816d7a Renderer formatting edits 10 years ago
tfarley 66b0d799ee Render-to-texture flush, interval math fix 10 years ago
tfarley 5025b35563 Liberal texture unbind (clout menu) 10 years ago
tfarley fa2c92a3ac Depth format fix (crush3d intro/black screens) 10 years ago
tfarley d42275f11c Implemented glColorMask 10 years ago
archshift 0414ad20cb Merge pull request #811 from archshift/commonify
Commonify video_core utility headers
10 years ago
bunnei 33b9abb91e Pica: Use zero for the SecondaryFragmentColor source.
- This is a workaround until we support fragment lighting.
10 years ago
bunnei dcbc653b90 rasterizer: Remove unnecessary 'using' for BlendEquation. 10 years ago
bunnei e6ace38815 Pica: Implement LogicOp function. 10 years ago
bunnei 3b5ff61201 rasterizer: Implement AddSigned combiner function for alpha channel. 10 years ago
bunnei 1574c44586 vertex_shader: Use address offset on src2 in inverted mode. 10 years ago
bunnei 02c9fe202c Pica: Implement command buffer execution registers. 10 years ago
bunnei 4ac6c1a3b5 vertex_shader: Implement SLT/SLTI instructions. 10 years ago
bunnei 875bd29766 vertex_shader: Implement MIN instruction. 10 years ago
archshift 76690392bf Move video_core/color.h to common/color.h 10 years ago
archshift 5df2d1b5f7 Move video_core/math.h to common/vector_math.h
The file only contained vector manipulation code, and such widely-useable code doesn't belong in video_core.
10 years ago
Emmanuel Gil Peyrot b1503b2020 Remove every trailing whitespace from the project (but externals). 10 years ago
Lioncash 951353558e gl_state: Remove unnecessary const specifier on Apply 10 years ago
Lioncash dc587fa295 video_core/utils: Remove unused variables in GetMortonOffset 10 years ago
bunnei 1b42d55a9d Pica: Create 'State' structure and move state memory there. 10 years ago
Lioncash 23d5df9d9c gl_state: Fix a condition typo in Apply 10 years ago
tfarley 05dc633a8c OpenGL renderer 10 years ago
bunnei f0365f28c2 Merge pull request #772 from lioncash/warn
core/video_core: Fix a few warnings when compiling on MSVC.
10 years ago
Subv 24d9416930 GPU/DefaultAttributes: Clear up a comment in command_processor 10 years ago
Subv 658c44af5c GPU/DefaultAttributes: Let the attribute data from the loaders overwrite the default attributes, if set.
closes #735
10 years ago
Yuri Kunde Schlesner 7ada357b2d Memmap: Re-organize memory function in two files
memory.cpp/h contains definitions related to acessing memory and
configuring the address space
mem_map.cpp/h contains higher-level definitions related to configuring
the address space accoording to the kernel and allocating memory.
10 years ago
Lioncash 497f4bee0c pica: Add the ULL specifier in IsDefaultAttribute
This is necessary otherwise there are warnings about a 32-bit result being casted to a 64-bit value.
10 years ago
Yuri Kunde Schlesner def5913d19 GPU: Add more fine grained profiling for vertex shader and rasterization 10 years ago
archshift 40310e2132 Implement I4 texture format
@neobrain, could you confirm that this is correct?

It's been tested with various different games and fixes different textures, including in Animal Crossing, Kirby Triple Deluxe, and SMB3D.
10 years ago
bunnei 23e8be573e rasterizer: Implemented combiner output scaling. 10 years ago
bunnei ff767eeb40 rasterizer: Implemented AddSigned combiner op. 10 years ago
bunnei 547da374b8 rasterizer: Fixed a depth testing bug. 10 years ago
bunnei a806b420a6 rasterizer: Implement combiner buffer input. 10 years ago
bunnei 44927f0306 rasterizer: Return zero'd vectors on error conditions. 10 years ago
bunnei 692a74c09e vertex_shader: Implement FLR instruction. 10 years ago
bunnei f935130a0f vertex_shader: Implement MADI instruction.
nihstro: Update submodule to latest upstream/master to support MADI instruction decoding.
10 years ago
Yuri Kunde Schlesner 17a8cae003 Memory: Add GetPhysicalPointer helper function 10 years ago
Yuri Kunde Schlesner 28a9e4c1d5 Memory: Support more regions in the VAddr-PAddr translation functions
Also adds better documentation and removes the one-off reimplementation
of the function in pica.h.
10 years ago
Yuri Kunde Schlesner 1c0b87edc2 Memory: Re-organize and rename memory area address constants 10 years ago
Yuri Kunde Schlesner 4f4d230dac Merge pull request #721 from yuriks/more-cleanups
More cleanups
10 years ago
Yuri Kunde Schlesner e1fbac3ca1 Common: Remove common.h 10 years ago
bunnei 337f1e1b96 Merge pull request #695 from Subv/crash_f
GPU: Implemented default vertex shader attributes.
10 years ago
Subv 0e5ca080a8 GPU: Implemented default vertex shader attributes.
Fixes some games crashing.
10 years ago
Emmanuel Gil Peyrot 36b48082d5 VideoCore: Remove a superfluous auto variable declaration in debug_utils. 10 years ago
Rohit Nirmal f15c142c5e Silence some -Wsign-compare warnings. 10 years ago
Gareth Higgins 8060c519a6 Changed occurences of colour to color for consistency 10 years ago
archshift cae89fb315 Allow the user to set the background clear color during emulation
The background color can be seen at the sides of the bottom screen or when the window is wider than normal.
10 years ago
bunnei c1f5cb7dd5 Merge pull request #652 from neobrain/shader_output_fix
Pica/VertexShader: Fix a bug caused due to incorrect assumptions of consecutive output register tables.
10 years ago
Emmanuel Gil Peyrot 92fd2a1ee3 VideoCore: Add static_cast around expressions where the compiler doesn’t deduce the right type. 10 years ago
Tony Wasserka e4f5ec6272 Pica/VertexShader: Fix a bug caused due to incorrect assumptions of consecutive output register tables.
We now write create a temporary buffer for output registers and copy all of them to the actual output vertex structure after the shader has run. This is technically not necessary, but it's easier to vectorize in the future.
10 years ago
bunnei b56829df02 Merge pull request #629 from archshift/lcdfb
Implement SetLcdForceBlack and add implementation for color filling in the GPU code
10 years ago
bunnei ec5bc54575 Merge pull request #643 from Subv/dem_feels
GPU: Implemented more depth buffer formats.
10 years ago
Subv 1248e291f0 GPU: Added the stencil test structure to the Pica Regs struct. 10 years ago
Subv 414b0741c4 GPU: Implemented more depth buffer formats.
This fixes the horizontal lines in Picross E, Cubic Ninja, Cave Story 3D and possibly others
10 years ago
archshift 041e99b613 Added LCD registers, and implementation for color filling in OGL code. 10 years ago
Tony Wasserka 5742367341 Pica/PrimitiveAssembly: Fix triangle strips and fans being generated with incorrect winding order. 10 years ago
archshift 7d43aef4d0 Update nihstro submodule to the initial release version.
Includes more opcodes to implement in the future.
10 years ago
bunnei 06bf471581 Merge pull request #636 from bunnei/refactor-screen-win
Set framebuffer layout from EmuWindow.
10 years ago
bunnei 9960c49c21 Set framebuffer layout from EmuWindow. 10 years ago
Subv 4b8d4d0ed5 GPU/Textures: Fixed ETC texture decoding. 10 years ago
Tony Wasserka 93e32bce72 Merge pull request #538 from yuriks/perf-stat
Add profiling infrastructure and widget
10 years ago
bunnei 34c31db14a GPU: Added RGB565/RGB8 framebuffer support and various cleanups.
- Centralizes color format encode/decode functions.
- Fixes endianness issues.
- Implements remaining framebuffer formats in the debugger.
10 years ago
Yuri Kunde Schlesner cd1fbfcf1b Add profiling infrastructure and widget 10 years ago
archshift 7f9ee69a2b Added RGBA5551 compatibility in the rasterizer
This allows Virtual Console games to display properly.
10 years ago
Subv c564c21668 GPU: Implemented bits 3 and 1 from the display transfer flags.
Bit 3 is used to specify a raw copy, where no processing is done to the data, seems to behave exactly as a DMA.
Bit 1 is used to specify whether to convert from a tiled format to a linear format or viceversa.
10 years ago
Yuri Kunde Schlesner ea3c99f3a2 Video core: Fix A4 texture decoding
It was trying to take the LSB from `coarse_x`, which would always be 0
and thus would always return the same texel from each byte. To add
insult to the injury, the conditional was actually the wrong way around
too.

Fixes blocky text in OoT.
10 years ago
Yuri Kunde Schlesner 3c50da6fc0 Video core: Fix pixelation/blockiness in textures.
This was caused during morton decoding by me not masking the bits of
each coordinate before merging them, so the bits from x could set bits
in y if it was >255.
10 years ago
bunnei ed255ebaec Rasterizer: Add support for RGBA4 framebuffer format. 10 years ago
bunnei 733c19ddd3 Rasterize with the correct color component order.
- Fixes a regression with #594.
10 years ago
Tony Wasserka 34f21334ad Merge pull request #593 from Subv/search_problem
Pica/VertexShader: Fixed LOOP with more than one iteration.
10 years ago
Subv 9a03e9c61d Pica/VertexShader: Fixed LOOP with more than one iteration.
Previously it wouldn't jump back to the start of the loop code once it reached the end of the block.
Fixes the texture problems in a lot of games.
10 years ago
bunnei 5f9939070e Merge pull request #588 from archshift/somebranch
Sweeping cleanup of Common
10 years ago
archshift 302f0b32f5 Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.h 10 years ago
Subv 5410367ebf Rasterizer: Fixed a warning in GetWrappedTexCoord.
Redeclaring the variable inside the switch was causing weird behavior.
10 years ago
bunnei ec8f2210e3 Merge pull request #580 from lioncash/emplace
core/video_core: Use in-place construction where possible
10 years ago
Tony Wasserka 2eee3a87f9 Pica/Rasterizer: Replace exit() calls with UNIMPLEMENTED(). 10 years ago
Tony Wasserka 6e5a903286 Pica/Rasterizer: Make some local lambdas static. 10 years ago
Tony Wasserka 1561204342 Pica/BlendUnit: Implement separate color/alpha blend equations. 10 years ago
Tony Wasserka 81ebb4d682 Pica/TextureEnvironment: Add a note. 10 years ago
Tony Wasserka e11fb96408 Pica/TextureEnvironment: Treat texture combiner source 1 as the PrimaryColor.
Not really sure where the difference is, but some applications seem to use this 1:1 the same way...
10 years ago
Tony Wasserka 04cd06d5c2 Pica/TextureEnvironment: Add support for the MAD-like texture combiners and clean up texture environment logic. 10 years ago
Tony Wasserka 087edcfbec Pica/OutputMerger: Fix flipped framebuffers. 10 years ago
Tony Wasserka 6ca752ccbc Pica/TextureUnit: Implement mirrored repeating texture wrapping. 10 years ago
Tony Wasserka 8bd7a896ea Pica: Fix a bug in the register definitions, relating to texture wrapping. 10 years ago
Tony Wasserka aaf30ca4ee Pica/OutputMerger: Implement color format checking. 10 years ago
Tony Wasserka 3b5710bae6 Pica/Rasterizer: Rasterize actual pixel centers instead of pixel corners. 10 years ago
Tony Wasserka 3cb22d31a7 Pica/Rasterizer: Fix garbage pixels at triangle borders. 10 years ago
Tony Wasserka 638b370fb5 Pica/Rasterizer: Clean up and fix backface culling. 10 years ago
Tony Wasserka 365236fa4c Pica: Cleanup clipping code and change screenspace z to range from -1..0.
The change in depth range seems to reflect better to what applications are expecting, and makes for cleaner code overall (hence is more likely to reflect hardware behavior).
10 years ago
Tony Wasserka 70a764d992 Pica/VertexShader: Implement the LOOP instruction. 10 years ago
Tony Wasserka 6c26ec72a5 Pica/CommandProcessor: Properly implement shader load destination offset registers. 10 years ago
Tony Wasserka 67120270f2 Pica/CommandProcessor: Work around initialized vertex attributes some more. 10 years ago
Lioncash 5d2366e1e9 core/video_core: Use in-place construction where possible 10 years ago
Emmanuel Gil Peyrot 8a1c08a0af VideoCore: Fix a typo in Vec4 MakeVec(T, Vec3<T>), where the second argument was Vec2<T> instead. 10 years ago
Emmanuel Gil Peyrot c439b3074d video_core: Implement the remaining framebuffer formats in the OpenGL renderer. 10 years ago
bunnei 12181c8a64 Merge pull request #529 from Subv/master
Build: Fixed some warnings
10 years ago
Subv 8e2b248e05 Build: Fixed some warnings 10 years ago
Darius Goad 5db62cc758 Fix Min and Max blend equations 10 years ago
archshift ef24e72b26 Asserts: break/crash program, fit to style guide; log.h->assert.h
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time)
As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing)

Also removed some GEKKO cruft.
10 years ago
Darius Goad 536958fb29 Add more blend equations from 3dbrew 10 years ago
bunnei 1eb591d6fd Rasterizer: Implement the other color and alpha modifiers. 10 years ago
bunnei 8c93a28fed VideoCore: Added same-component swizzlers to math utility functions. 10 years ago
bunnei 72cc512b1e Pica: Implement blend factors. 10 years ago
bunnei b522cf4e6a Pica: Implement color/alpha channel enable. 10 years ago
bunnei b2c55bf772 Rasterizer: Implemented alpha testing. 10 years ago
bunnei ff83d23ed5 GPU: Implement the remaining depth testing functions. 10 years ago
Yuri Kunde Schlesner 5961a2852d GSP: Update framebuffer info on all interrupts
Hardware testing determined that the GSP processes shared memory
framebuffer update info even when no memory transfer or filling GX
commands are used. They are now updated on every interrupt, which isn't
confirmed correct but matches hardware behaviour more closely.

This also reverts the hack introduced in #404. It made a few games
behave better, but I believe it's incorrect and also breaks other games.
10 years ago
bunnei 93f36c49f7 Merge pull request #473 from archshift/pp3ports
Pica/Rasterizer: Add ETC1 texture decompression support.
10 years ago
Tony Wasserka f2b74b4fb3 Pica/Rasterizer: Add ETC1 texture decompression support. 10 years ago
bunnei 99c0716d4d Merge pull request #478 from archshift/pp3ports4
Pica/VertexShader: Implement the MAD instruction.
10 years ago
Tony Wasserka 2b9a9a45b7 Pica/VertexShader: Implement JMPC/JMPU/CALLC/CALLU. 10 years ago
Tony Wasserka e02db3904b Pica/VertexShader: Implement the MAD instruction. 10 years ago
bunnei f7a3f45f1e GSP: Toggle active framebuffer each frame 10 years ago
Tony Wasserka bc187be0c1 Pica/Rasterizer: Remove some redundant casts. 10 years ago
Tony Wasserka 9675d19b47 Pica/Rasterizer: Make orient2d a free function and rename it to SignedArea. 10 years ago
Tony Wasserka 47543d62cf Pica: Cleanup color conversion. 10 years ago
Tony Wasserka 614baa39d1 VideoCore: Remove some unused functions. 10 years ago
Tony Wasserka d13bd327ba Pica/Rasterizer: Fix a bug related to multitexturing and texture wrapping. 10 years ago
Tony Wasserka 195d73a385 Pica/Rasterizer: Clean up long code lines. 10 years ago
Tony Wasserka 40c7200841 Pica/VertexShader: Coding style fixes. 10 years ago
Tony Wasserka 323a56f898 Pica/CommandProcessor: Cleanups. 10 years ago
Tony Wasserka b2d461020d Pica/CommandProcessor: Workaround games not setting the input position's w component. 10 years ago
Tony Wasserka 0f49424022 Pica/Rasterizer: Implement backface culling. 10 years ago
Tony Wasserka 3b78af904e Pica/Rasterizer: Textures seem to be laid out flipped vertically.
Not sure if this is a correct fix. Probably should instead change the decoding logic itself.
10 years ago
Tony Wasserka 3da52ead9b Pica/DebugUtils: Fix a bug in RGBA4 texture decoding. 10 years ago
Tony Wasserka a7ae0330b1 Pica/Rasterizer: Implement alpha blending. 10 years ago
Tony Wasserka e229ff8c83 Pica/Rasterizer: Implement depth testing. 10 years ago
Tony Wasserka 77bb58afeb Pica/Rasterizer: Further enhance Tev support. 10 years ago
Tony Wasserka 36291bc3f6 Pica: Add output merger definitions. 10 years ago
Tony Wasserka 632655e292 Pica: Fix A4, IA4 and IA8 texture formats.
Both IA4 and IA8 had their component order mixed up. Additionally, IA4 used the wrong number of nibbles per texel. A4 skipped every second texel.
10 years ago
Tony Wasserka b7a48c422a Pica/CommandProcessor: Add support for integer uniforms. 10 years ago
Yuri Kunde Schlesner 8369ee5803 Rasterizer: Pre-divide vertex attributes by W
Execute the division-by-W for perspective-correct interpolation of
values in the clipper, moving them out of the rasterization inner loop.
10 years ago
Yuri Kunde Schlesner fe186d3a59 GPU: Bitwise texture swizzling
Replace the loop-based texture address swizzling code by a bit-twiddling
implementation, providing a very small speed up. Also simplify
addressing code.
10 years ago
Yuri Kunde Schlesner 2012e1420f Rasterizer: Common sub-expression elimination
Move the computation of some values out of loops so that they're not
constantly recalculated even when they don't change.
10 years ago
Yuri Kunde Schlesner 7e9bc85cc8 Clipper: Compact buffers on each clipping pass
Use a new buffer management scheme in the clipper that allows using a
bounded minimal amount of buffer space. Even though it copies more data
it is still slightly faster likely due to using less cache.
10 years ago
Yuri Kunde Schlesner a320d1a5b4 Clipper: Avoid dynamic allocations
The triangle clipper was allocating its temporary input, output and work
buffers using a std::vector. Since this is a hot path, it's desirable to
use stack allocation instead.
10 years ago
Yuri Kunde Schlesner d151d797b1 Vertex Shader: Zero OutputVertex to avoid denormals
Unused OutputVertex attributes were being left un-initialized. The
leftover garbage sometimes decoded as floating-point denormalized
values, causing fallbacks to microcode and massive slowdowns in the rest
of the rasterization pipeline even though the results were unused. By
zeroing the structure we ensure these attributes only contain harmless
zeros.
10 years ago
bunnei 3b9d181b8e GPU: Implement frameskip and remove forced framebuffer swap hack. 10 years ago
bunnei 01c675685e Merge pull request #327 from Apology11/master
Fix visual studio ambiguous symbol error
10 years ago
bunnei 2188af4a65 Merge pull request #322 from chinhodado/master
More warning cleanups
10 years ago
bunnei 0de6a08d75 Merge pull request #291 from purpasmart96/license
License change
10 years ago
Apology11 8d81e23d6e Fix visual studio ambiguous symbol error 10 years ago
Chin 0199a7d9ef More warning cleanups 10 years ago
purpasmart96 ebfd831ccb License change 10 years ago
Tony Wasserka 08f42c2b8c Pica/VertexShader: Promote a log message to critical status. 10 years ago
Tony Wasserka 17f31de364 Pica/VertexShader: Small optimization. 10 years ago
Tony Wasserka a664574ecb Pica/VertexShader: Be robust against invalid inputs.
More specifically, this also fixes crashes by Citra trying to load a src2 register even if the current instruction does not use that.
10 years ago
Tony Wasserka ad5db467d7 Pica/VertexShader: Clarify a comment. 10 years ago
Tony Wasserka 871418e62b Pica/DebugUtils: Further cleanups to LookupTexture. 10 years ago
Tony Wasserka 88e9efe4b8 Pica/DebugUtils: Fix two warnings. 10 years ago
Tony Wasserka 6e275778c9 Pica/DebugUtils: Better document LookupTexture. 10 years ago
Tony Wasserka e4e9710d18 Pica/Rasterizer: Get rid of C-style casts. 10 years ago
Tony Wasserka d81370682f Pica/DebugUtils: Make a number of variables static.
Makes for cleaner and faster code.
10 years ago
Tony Wasserka 6bd41de276 Pica/VertexShader: Cleanup flow control logic and implement CMP/IFU instructions. 10 years ago
Tony Wasserka 22afb9d830 Pica/VertexShader: Run instruction handlers according to the effective opcode.
This allows for proper emulation of the different CMP/LRP/MAD instructions.
10 years ago
Tony Wasserka cd163fb59a Pica/VertexShader: Implement MAX instructions. 10 years ago
Tony Wasserka aff808b2fd Pica: Add support for boolean uniforms. 10 years ago
Tony Wasserka 67618a2c55 Pica/VertexShader: Add support for MOVA, CMP and IFC. 10 years ago
Tony Wasserka cb1804e0ab Pica/VertexShader: Move code around a bit. 10 years ago