aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2015-08-15Shader: Use a POD struct for registers.bunnei
2015-08-15Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64.bunnei
2015-08-15Common: Cleanup CPU capability detection code.bunnei
2015-08-15Common: Move cpu_detect to x64 directory.bunnei
2015-08-15x64: Refactor to remove fake interfaces and general cleanups.bunnei
2015-08-15JIT: Support negative address offsets.bunnei
2015-08-15Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.bunnei
- Config: Add an option for selecting to use shader JIT or interpreter. - Qt: Add a menu option for enabling/disabling the shader JIT.
2015-08-15Common: Added MurmurHash3 hash function for general-purpose use.bunnei
2015-08-15Shader: Define a common interface for running vertex shader programs.bunnei
2015-08-15Shader: Move shader code to its own subdirectory, "shader".bunnei
2015-08-15GPU: Refactor "VertexShader" namespace to "Shader".bunnei
- Also renames "vertex_shader.*" to "shader_interpreter.*"
2015-08-11Merge pull request #893 from linkmauve/remove-uint._t-int._tbunnei
Replace standard uint*_t and int*_t with CommonTypes’ u* and s* types
2015-08-11ARM Core, Video Core, CitraQt, Citrace: Use CommonTypes types instead of the ↵Emmanuel Gil Peyrot
standard u?int*_t types.
2015-08-06OpenGL: Fix state tracking in situations with reused object handlesYuri Kunde Schlesner
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.
2015-08-05OpenGL: Remove redundant texture.enable_2d field from OpenGLStateYuri Kunde Schlesner
All uses of this field where it's false can just set the texture id to 0 instead.
2015-08-04Videocore: Implement simple vertex cachingYuri Kunde Schlesner
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.
2015-07-30Merge pull request #1006 from yuriks/fb-commit-profilebunnei
OpenGL: Add a profiler category measuring framebuffer readback
2015-07-29Merge pull request #963 from yuriks/gpu-fixesbunnei
Misc. GPU vertex loading fixes
2015-07-28OpenGL: Add a profiler category measuring framebuffer readbackYuri Kunde Schlesner
2015-07-26Merge pull request #991 from yuriks/globjectsbunnei
OpenGL: Make OpenGL object resource wrappers fully inline
2015-07-26Merge pull request #992 from yuriks/hot-path-debugbunnei
VideoCore: #ifdef out some debugging routines
2015-07-26citra-qt/debug_utils: Use lock_guard everywhereLectem
unique_lock were being used as lock_guards. Also replaced manual lock/unlock by lock_guard for harmonization.
2015-07-26citra-qt/command list: Add mask columnLectem
2015-07-26OpenGL: Make OpenGL object resource wrappers fully inlineYuri Kunde Schlesner
The functions are so simple that having them separate only bloats the code and hinders optimization.
2015-07-26Merge pull request #987 from yuriks/regnamesTony Wasserka
Videocore: Don't reinitialize register name map on every query.
2015-07-26Videocore: Don't reinitialize register name map on every queryYuri Kunde Schlesner
This greatly speeds up the command list debug widget.
2015-07-26Videocore: Simplify variables in vertex shader interpreterYuri Kunde Schlesner
Simplifies the code and gives a tiny speed-up.
2015-07-26Videocore: Replace std::stack in shader interpreter with static_vectorYuri Kunde Schlesner
Shaves off 1/3rd of the vertex shader time in Fire Emblem
2015-07-26VideoCore: #ifdef out some debugging routinesYuri Kunde Schlesner
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.
2015-07-25Address error that remained in last mergeYuri Kunde Schlesner
2015-07-25Merge pull request #892 from zawata/another-warning-fixesYuri Kunde Schlesner
Yet More Warning Fixes
2015-07-24Merge pull request #980 from Subv/more_breakpointsTony Wasserka
Qt/GPU Breakpoints: Added three more breakpoint types.
2015-07-23VideoCore: Fix values of unset components in input attribute arraysYuri Kunde Schlesner
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.
2015-07-23VideoCore: Saturate vertex colors before interpolatingYuri Kunde Schlesner
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.
2015-07-23Qt/GPU Breakpoints: Added three more breakpoint types:Subv
* IncomingDisplayTransfer: Triggered just before a display transfer is performed. * GSPCommandProcessed: Triggered right after a GSP command is processed. * BufferSwapped: Triggered when the frames flip
2015-07-23Merge pull request #977 from yuriks/glenable-tex2dbunnei
GL Renderer: Remove erroneous glEnable(GL_TEXTURE_2D) calls
2015-07-22Rasterizer/GL: Set the border color when binding a texture.Subv
2015-07-22GL Renderer: Remove erroneous glEnable(GL_TEXTURE_2D) callsYuri Kunde Schlesner
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.
2015-07-21Merge pull request #968 from Subv/texture_filteringbunnei
GPU: Added registers for min and mag texture filters
2015-07-21GPU: Added registers for min and mag texture filters and implemented them in ↵Subv
the hw renderer.
2015-07-21Merge pull request #929 from neobrain/geoshader_definitionsTony Wasserka
Pica/Shader: Add geometry shader definitions.
2015-07-19Merge pull request #944 from Subv/spambunnei
GLRasterizer: Don't try to get a pointer to the depth buffer if it doesn't exist.
2015-07-19Pica: Correct switched S/T texture wrapping registersYuri Kunde Schlesner
This was found and hwtested by Lectem
2015-07-19Pica: Fix DP3 instruction, which wasn't assigning to the w componentYuri Kunde Schlesner
2015-07-19GLRasterizer: Don't try to get a pointer to the depth buffer if it doesn't ↵Subv
exist.
2015-07-19Rasterizer/Textures: Fixed a bug where the I4 format would get twice the ↵Subv
real stride. Also added its name to the texture viewer widget
2015-07-19Vertex Shader : Undo castingzawata
2015-07-19Video_Core : Type fixeszawata
2015-07-19Video_Core: Finally fix pesky warningzawata
2015-07-19Video_Core : Change Tabs to Spaceszawata
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)