Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | maxwell_to_gl: Add module and function for decoding VertexType. | bunnei | 2018-03-27 | 2 | -0/+41 |
| | |||||
* | maxwell_3d: Use names that match envytools for VertexType. | bunnei | 2018-03-27 | 1 | -8/+8 |
| | |||||
* | maxwell_3d: Add VertexAttribute struct and cleanup. | bunnei | 2018-03-27 | 1 | -121/+160 |
| | |||||
* | gl_rasterizer: Use 32 texture units instead of 3. | bunnei | 2018-03-27 | 3 | -2/+3 |
| | |||||
* | gl_rasterizer: Implement DrawTriangles. | bunnei | 2018-03-27 | 1 | -1/+194 |
| | |||||
* | Maxwell3D: Call AccelerateDrawBatch on DrawArrays. | bunnei | 2018-03-27 | 1 | -1/+8 |
| | |||||
* | gl_rasterizer: Implement AnalyzeVertexArray. | bunnei | 2018-03-27 | 2 | -1/+56 |
| | |||||
* | gl_rasterizer_cache: MortonCopy Switch-style. | bunnei | 2018-03-27 | 1 | -72/+32 |
| | |||||
* | gl_rasterizer_cache: Implement GetFramebufferSurfaces. | bunnei | 2018-03-27 | 2 | -4/+104 |
| | |||||
* | maxwell: Add RenderTargetFormat enum. | bunnei | 2018-03-27 | 2 | -4/+5 |
| | |||||
* | renderer_opengl: Only draw the screen if a framebuffer is specified. | bunnei | 2018-03-27 | 1 | -6/+7 |
| | |||||
* | GPU: Load the sampler info (TSC) when retrieving active textures. | Subv | 2018-03-26 | 2 | -21/+67 |
| | |||||
* | GPU: Added the TSC structure. It contains information about the sampler. | Subv | 2018-03-26 | 1 | -0/+50 |
| | |||||
* | GPU: Added more fields to the TIC structure. | Subv | 2018-03-26 | 1 | -4/+30 |
| | |||||
* | GPU: Make the debug_context variable a member of the frontend instead of a global. | Subv | 2018-03-25 | 3 | -15/+13 |
| | |||||
* | GPU: Added a function to retrieve the active textures for a shader stage. | Subv | 2018-03-24 | 2 | -50/+59 |
| | | | | TODO: A shader may not use all of these textures at the same time, shader analysis should be performed to determine which textures are actually sampled. | ||||
* | Frontend: Updated the surface view debug widget to work with Maxwell surfaces. | Subv | 2018-03-24 | 2 | -0/+15 |
| | |||||
* | GPU: Implement the Incoming/FinishedPrimitiveBatch debug breakpoints. | Subv | 2018-03-24 | 1 | -0/+7 |
| | |||||
* | GPU: Implement the MaxwellCommandLoaded/Processed debug breakpoints. | Subv | 2018-03-24 | 1 | -0/+10 |
| | |||||
* | Frontend: Ported the GPU breakpoints and surface viewer widgets from citra. | Subv | 2018-03-24 | 5 | -0/+242 |
| | |||||
* | GPU: Added a method to unswizzle a texture without decoding it. | Subv | 2018-03-24 | 4 | -5/+95 |
| | | | | Allow unswizzling of DXT1 textures. | ||||
* | GPU: Preliminary work for texture decoding. | Subv | 2018-03-24 | 5 | -0/+139 |
| | |||||
* | GPU: Added viewport registers to Maxwell3D's reg structure. | Subv | 2018-03-24 | 1 | -1/+18 |
| | |||||
* | gl_rasterizer: Fake render in green, because it's cooler. | bunnei | 2018-03-24 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Log warning instead of sync'ing unimplemented funcs. | bunnei | 2018-03-24 | 1 | -7/+1 |
| | |||||
* | gl_rasterizer_cache: Add missing include for vm_manager. | bunnei | 2018-03-23 | 1 | -0/+1 |
| | |||||
* | renderer_opengl: Only invalidate the framebuffer region, not flush. | bunnei | 2018-03-23 | 1 | -4/+3 |
| | |||||
* | renderer_opengl: Fixes for properly flushing & rendering the framebuffer. | bunnei | 2018-03-23 | 1 | -6/+12 |
| | |||||
* | RasterizerCacheOpenGL: FlushAll should flush full memory region. | bunnei | 2018-03-23 | 1 | -1/+1 |
| | |||||
* | rasterizer: Flush and invalidate regions should be 64-bit. | bunnei | 2018-03-23 | 3 | -9/+9 |
| | |||||
* | renderer_opengl: Add framebuffer_transform_flags member variable. | bunnei | 2018-03-23 | 1 | -2/+2 |
| | |||||
* | renderer_opengl: Better handling of framebuffer transform flags. | bunnei | 2018-03-23 | 2 | -3/+20 |
| | |||||
* | renderer_opengl: Use accelerated framebuffer load with LoadFBToScreenInfo. | bunnei | 2018-03-23 | 1 | -31/+25 |
| | |||||
* | gl_rasterizer: Implement AccelerateDisplay method from Citra. | bunnei | 2018-03-23 | 2 | -2/+44 |
| | |||||
* | LoadGLBuffer: Use bytes_per_pixel, not bits. | bunnei | 2018-03-23 | 1 | -1/+2 |
| | |||||
* | gl_rasterizer_cache: LoadGLBuffer should do a morton copy. | bunnei | 2018-03-23 | 1 | -16/+5 |
| | |||||
* | video_core: Move MortonCopyPixels128 to utils header. | bunnei | 2018-03-23 | 2 | -111/+113 |
| | |||||
* | video_core: Remove usage of PAddr and replace with VAddr. | bunnei | 2018-03-23 | 5 | -39/+39 |
| | |||||
* | video_core: Move FramebufferInfo to FramebufferConfig in GPU. | bunnei | 2018-03-23 | 7 | -66/+74 |
| | |||||
* | gl_rasterizer: Replace a bunch of UNIMPLEMENTED with ASSERT. | bunnei | 2018-03-23 | 2 | -20/+20 |
| | |||||
* | gl_rasterizer: Add a simple passthrough shader in lieu of shader generation. | bunnei | 2018-03-23 | 2 | -5/+68 |
| | |||||
* | gpu: Expose Maxwell3D engine. | bunnei | 2018-03-23 | 1 | -0/+4 |
| | |||||
* | maxwell_3d: Add some format decodings and string helper functions. | bunnei | 2018-03-23 | 1 | -3/+107 |
| | |||||
* | renderer: Create rasterizer and cleanup. | bunnei | 2018-03-23 | 4 | -4/+16 |
| | |||||
* | GPU: Added vertex attribute format registers. | Subv | 2018-03-21 | 1 | -1/+14 |
| | |||||
* | GPU: Added registers for the number of vertices to render. | Subv | 2018-03-21 | 1 | -2/+13 |
| | |||||
* | Merge pull request #254 from bunnei/port-citra-renderer | bunnei | 2018-03-21 | 18 | -101/+2905 |
|\ | | | | | Port Citra OpenGL rasterizer code | ||||
| * | renderer_gl: Port boilerplate rasterizer code over from Citra. | bunnei | 2018-03-20 | 5 | -1/+495 |
| | | |||||
| * | gl_shader_util: Sync latest version with Citra. | bunnei | 2018-03-20 | 3 | -46/+116 |
| | | |||||
| * | renderer_gl: Port over gl_shader_gen module from Citra. | bunnei | 2018-03-20 | 3 | -0/+88 |
| | | |||||
| * | renderer_gl: Port over gl_shader_decompiler module from Citra. | bunnei | 2018-03-20 | 3 | -0/+87 |
| | | |||||
| * | renderer_gl: Port over gl_rasterizer_cache module from Citra. | bunnei | 2018-03-20 | 3 | -0/+1714 |
| | | |||||
| * | gl_resource_manager: Sync latest version with Citra. | bunnei | 2018-03-20 | 1 | -8/+77 |
| | | |||||
| * | renderer_gl: Port over gl_stream_buffer module from Citra. | bunnei | 2018-03-20 | 3 | -0/+218 |
| | | |||||
| * | gl_state: Sync latest version with Citra. | bunnei | 2018-03-20 | 2 | -47/+111 |
| | | |||||
* | | Merge pull request #253 from Subv/rt_depth | Mat M | 2018-03-20 | 1 | -1/+48 |
|\ \ | |/ |/| | GPU: Added registers for color and Z buffers. | ||||
| * | GPU: Added Z buffer registers to Maxwell3D's reg structure. | Subv | 2018-03-19 | 1 | -1/+17 |
| | | |||||
| * | GPU: Added the render target (RT) registers to Maxwell3D's reg structure. | Subv | 2018-03-19 | 1 | -1/+32 |
| | | |||||
* | | Clang Fixes | N00byKing | 2018-03-19 | 1 | -1/+2 |
| | | |||||
* | | Clean Warnings (?) | N00byKing | 2018-03-19 | 1 | -1/+1 |
|/ | |||||
* | GPU: Added the TSC registers to the Maxwell3D register structure. | Subv | 2018-03-19 | 1 | -1/+15 |
| | |||||
* | GPU: Added the TIC registers to the Maxwell3D register structure. | Subv | 2018-03-19 | 1 | -1/+16 |
| | |||||
* | GPU: Implement macro 0xE1A BindTextureInfoBuffer in HLE. | Subv | 2018-03-19 | 2 | -1/+29 |
| | | | | This macro simply sets the current CB_ADDRESS to the texture buffer address for the input shader stage. | ||||
* | GPU: Implement the BindStorageBuffer macro method in HLE. | Subv | 2018-03-18 | 2 | -1/+36 |
| | | | | | | This macro binds the SSBO Info Buffer as the current ConstBuffer. This buffer is usually bound to c0 during shader execution. Games seem to use this macro instead of directly writing the address for some reason. | ||||
* | GPU: Handle writes to the CB_DATA method. | Subv | 2018-03-18 | 2 | -0/+39 |
| | | | | | | Writing to this method will cause the written value to be stored in the currently-set ConstBuffer plus CB_POS. This method is usually used to upload uniforms or other shader-visible data. | ||||
* | GPU: Move the GPU's class constructor and destructors to a cpp file. | Subv | 2018-03-18 | 3 | -10/+30 |
| | | | | This should reduce recompile times when editing the Maxwell3D register structure. | ||||
* | GPU: Store uploaded GPU macros and keep track of the number of method parameters. | Subv | 2018-03-18 | 4 | -27/+74 |
| | |||||
* | GPU: Macros are specific to the Maxwell3D engine, so handle them internally. | Subv | 2018-03-18 | 8 | -63/+55 |
| | |||||
* | GPU: Renamed ShaderType to ShaderStage as that is less confusing. | Subv | 2018-03-18 | 2 | -19/+19 |
| | |||||
* | GPU: Store shader constbuffer bindings in the GPU state. | Subv | 2018-03-18 | 2 | -5/+61 |
| | |||||
* | GPU: Corrected some register offsets and removed superfluous macro registers. | Subv | 2018-03-18 | 1 | -9/+3 |
| | |||||
* | GPU: Make the SetShader macro call do the same as the real macro's code. | Subv | 2018-03-18 | 2 | -3/+44 |
| | | | | | | It'll now set the CB_SIZE, CB_ADDRESS and CB_BIND registers when it's called. Presumably this SetShader function is binding the constant shader uniforms to buffer 1 (c1[]). | ||||
* | GPU: Corrected the parameter documentation for the SetShader macro call. | Subv | 2018-03-17 | 2 | -11/+12 |
| | | | | | | Register 0xE24 is actually a macro that sets some shader parameters in the register structure. Macros are uploaded to the GPU at startup and have their own ISA, we'll probably write an interpreter for this in the future. | ||||
* | Merge pull request #242 from Subv/set_shader | bunnei | 2018-03-17 | 2 | -4/+38 |
|\ | | | | | GPU: Handle the SetShader method call (0xE24) and store the shader config. | ||||
| * | GPU: Handle the SetShader method call (0xE24) and store the shader config. | Subv | 2018-03-17 | 2 | -4/+38 |
| | | |||||
* | | GPU: Added the vertex array registers. | Subv | 2018-03-17 | 1 | -2/+33 |
|/ | |||||
* | Merge pull request #241 from Subv/gpu_method_call | bunnei | 2018-03-17 | 9 | -8/+97 |
|\ | | | | | GPU: Process command mode 5 (IncreaseOnce) differently from other commands | ||||
| * | GPU: Process command mode 5 (IncreaseOnce) differently from other commands. | Subv | 2018-03-17 | 9 | -8/+97 |
| | | | | | | | | | | | | Accumulate all arguments before calling the desired method. Note: Maybe we should do the same for the NonIncreasing mode? | ||||
* | | GPU: Assert that we get a 0 CODE_ADDRESS register in the 3D engine. | Subv | 2018-03-17 | 1 | -0/+8 |
| | | | | | | | | Shader address calculation depends on this value to some extent, we do not currently know what it being 0 entails. | ||||
* | | GPU: Added Maxwell registers for Shader Program control. | Subv | 2018-03-17 | 1 | -2/+55 |
|/ | |||||
* | GPU: Intercept writes to the VERTEX_END_GL register. | Subv | 2018-03-05 | 2 | -1/+18 |
| | | | | | | This is the register that gets written after a game calls DrawArrays(). We should collect all GPU state and draw using our graphics API here. | ||||
* | maxwell_3d: Make constructor explicit | Lioncash | 2018-02-14 | 1 | -1/+1 |
| | |||||
* | Merge pull request #187 from Subv/maxwell3d_query | bunnei | 2018-02-14 | 3 | -3/+95 |
|\ | | | | | GPU: Partially implemented the QUERY_* registers in the Maxwell3D engine. | ||||
| * | GPU: Partially implemented the QUERY_* registers in the Maxwell3D engine. | Subv | 2018-02-12 | 3 | -3/+95 |
| | | | | | | | | Only QueryMode::Write is supported at the moment. | ||||
* | | Merge pull request #178 from Subv/command_buffers | bunnei | 2018-02-12 | 12 | -0/+488 |
|\| | | | | | GPU: Added a command processor to decode the GPU pushbuffers and forward the commands to their respective engines | ||||
| * | Make a GPU class in VideoCore to contain the GPU state. | Subv | 2018-02-12 | 12 | -44/+252 |
| | | | | | | | | Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there. | ||||
| * | GPU: Added a command processor to decode the GPU pushbuffers and forward the commands to their respective engines. | Subv | 2018-02-12 | 9 | -0/+280 |
| | | |||||
* | | renderer_opengl: Support framebuffer flip vertical. | bunnei | 2018-02-12 | 3 | -5/+13 |
|/ | |||||
* | memory: Replace all memory hooking with Special regions | MerryMage | 2018-01-27 | 1 | -1/+1 |
| | |||||
* | Format: Run the new clang format on everything | James Rowe | 2018-01-21 | 4 | -4/+4 |
| | |||||
* | CMakeLists: Derive the source directory grouping from targets themselves | Lioncash | 2018-01-18 | 1 | -19/+15 |
| | | | | | Removes the need to store to separate SRC and HEADER variables, and then construct the target in most cases. | ||||
* | clang-format | MerryMage | 2018-01-16 | 1 | -1/+2 |
| | |||||
* | renderer_gl: Clear screen to black before rendering framebuffer. | bunnei | 2018-01-15 | 2 | -5/+8 |
| | |||||
* | renderer: Render previous frame when no new one is available. | bunnei | 2018-01-15 | 3 | -16/+18 |
| | |||||
* | Fix build on macOS and linux | MerryMage | 2018-01-13 | 1 | -0/+1 |
| | |||||
* | Remove gpu debugger and get yuzu qt to compile | James Rowe | 2018-01-13 | 2 | -5/+0 |
| | |||||
* | Remove references to PICA and rasterizers in video_core | James Rowe | 2018-01-13 | 64 | -14952/+3 |
| | |||||
* | renderer_opengl: Fix LOG_TRACE in LoadFBToScreenInfo. | bunnei | 2018-01-12 | 1 | -1/+1 |
| | |||||
* | renderer_opengl: Support rendering Switch framebuffer. | bunnei | 2018-01-11 | 3 | -138/+83 |
| | |||||
* | render_base: Add a struct describing framebuffer metadata. | bunnei | 2018-01-11 | 1 | -0/+26 |
| | |||||
* | renderer_opengl: Add MortonCopyPixels function for Switch framebuffer. | bunnei | 2018-01-11 | 1 | -0/+111 |
| | |||||
* | renderer_opengl: Update DrawScreens for Switch. | bunnei | 2018-01-11 | 2 | -23/+11 |
| | |||||
* | core/video_core: Fix a bunch of u64 -> u32 warnings. | bunnei | 2018-01-01 | 4 | -8/+8 |
| | |||||
* | hle: Initial implementation of NX service framework and IPC. | bunnei | 2017-10-15 | 1 | -1/+1 |
| | |||||
* | Extracted the attribute setup and draw commands into their own functions | Huw Pascoe | 2017-10-04 | 1 | -217/+222 |
| | |||||
* | Fixed type conversion ambiguity | Huw Pascoe | 2017-09-30 | 2 | -3/+3 |
| | |||||
* | Disable unary operator- on Math::Vec2/Vec3/Vec4 for unsigned types. | Subv | 2017-09-27 | 1 | -1/+1 |
| | | | | | It is unlikely we will ever use this without first doing a Cast to a signed type. Fixes 9 "unary minus operator applied to unsigned type, result still unsigned" warnings on MSVC2017.3 | ||||
* | Merge pull request #2951 from huwpascoe/perf-4 | B3n30 | 2017-09-25 | 1 | -10/+4 |
|\ | | | | | Optimized Morton | ||||
| * | Optimized Morton | Huw Pascoe | 2017-09-24 | 1 | -10/+4 |
| | | |||||
* | | Optimized Float<M,E> multiplication | Huw Pascoe | 2017-09-25 | 1 | -11/+7 |
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: ucomiss xmm1, xmm1 jp .L9 pxor xmm2, xmm2 mov edx, 1 ucomiss xmm0, xmm2 setp al cmovne eax, edx test al, al jne .L9 .L3: movaps xmm0, xmm2 ret .L9: ucomiss xmm0, xmm0 jp .L10 pxor xmm2, xmm2 mov edx, 1 ucomiss xmm1, xmm2 setp al cmovne eax, edx test al, al je .L3 After: movaps xmm2, xmm1 mulss xmm2, xmm0 ucomiss xmm2, xmm2 jnp .L3 ucomiss xmm1, xmm0 jnp .L11 .L3: movaps xmm0, xmm2 ret .L11: pxor xmm2, xmm2 jmp .L3 | ||||
* | Merge pull request #2921 from jroweboy/batch-fix-2 | James Rowe | 2017-09-24 | 1 | -12/+17 |
|\ | | | | | GPU: Add draw for immediate and batch modes | ||||
| * | Remove pipeline.gpu_mode and fix minor issues | James Rowe | 2017-09-23 | 1 | -12/+2 |
| | | |||||
| * | GPU: Add draw for immediate and batch modes | James Rowe | 2017-09-11 | 1 | -2/+17 |
| | | | | | | | | | | | | | | | | PR #1461 introduced a regression where some games would change configuration even while in the poorly named "drawing" mode, which broke the heuristic citra was using to determine when to draw the batch. This change adds back in a draw call for batching, and also adds in a draw call in immediate mode each time it adds a triangle. | ||||
* | | Merge pull request #2928 from huwpascoe/master | Yuri Kunde Schlesner | 2017-09-22 | 1 | -7/+18 |
|\ \ | | | | | | | Fixed framebuffer warning | ||||
| * | | Fixed framebuffer warning | Huw Pascoe | 2017-09-17 | 1 | -7/+18 |
| | | | |||||
* | | | Improved performance of FromAttributeBuffer | Huw Pascoe | 2017-09-17 | 1 | -1/+2 |
|/ / | | | | | | | | | | | | | Ternary operator is optimized by the compiler whereas std::min() is meant to return a value. I've noticed a 5%-10% emulation speed increase. | ||||
* | | Merge pull request #2900 from wwylele/clip-2 | Yuri Kunde Schlesner | 2017-09-16 | 5 | -46/+116 |
|\ \ | |/ |/| | PICA: implement custom clip plane | ||||
| * | SwRasterizer/Clipper: flip the sign convention to match PICA and OpenGL | wwylele | 2017-08-25 | 1 | -9/+9 |
| | | |||||
| * | gl_rasterizer: implement custom clip plane | wwylele | 2017-08-25 | 3 | -34/+83 |
| | | |||||
| * | SwRasterizer: implement custom clip plane | wwylele | 2017-08-24 | 2 | -4/+25 |
| | | |||||
* | | Merge pull request #2865 from wwylele/gs++ | bunnei | 2017-09-08 | 15 | -37/+594 |
|\ \ | | | | | | | PICA: implemented geometry shader | ||||
| * | | pica/command_processor: build geometry pipeline and run geometry shader | wwylele | 2017-08-19 | 6 | -28/+383 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The geometry pipeline manages data transfer between VS, GS and primitive assembler. It has known four modes: - no GS mode: sends VS output directly to the primitive assembler (what citra currently does) - GS mode 0: sends VS output to GS input registers, and sends GS output to primitive assembler - GS mode 1: sends VS output to GS uniform registers, and sends GS output to primitive assembler. It also takes an index from the index buffer at the beginning of each primitive for determine the primitive size. - GS mode 2: similar to mode 1, but doesn't take the index and uses a fixed primitive size. hwtest shows that immediate mode also supports GS (at least for mode 0), so the geometry pipeline gets refactored into its own class for supporting both drawing mode. In the immediate mode, some games don't set the pipeline registers to a valid value until the first attribute input, so a geometry pipeline reset flag is set in `pipeline.vs_default_attributes_setup.index` trigger, and the actual pipeline reconfigure is triggered in the first attribute input. In the normal drawing mode with index buffer, the vertex cache is a little bit modified to support the geometry pipeline. Instead of OutputVertex, it now holds AttributeBuffer, which is the input to the geometry pipeline. The AttributeBuffer->OutputVertex conversion is done inside the pipeline vertex handler. The actual hardware vertex cache is believed to be implemented in a similar way (because this is the only way that makes sense). Both geometry pipeline and GS unit rely on states preservation across drawing call, so they are put into the global state. In the future, the other three vertex shader units should be also placed in the global state, and a scheduler should be implemented on top of the four units. Note that the current gs_unit already allows running VS on it in the future. | ||||
| * | | pica/shader/jit: implement SETEMIT and EMIT | wwylele | 2017-08-19 | 2 | -2/+49 |
| | | | |||||
| * | | pica/primitive_assembly: Handle winding for GS primitive | wwylele | 2017-08-19 | 2 | -3/+19 |
| | | | | | | | | | | | | hwtest shows that, although GS always emit a group of three vertices as one primitive, it still respects to the topology type, as if the three vertices are input into the primitive assembler independently and sequentially. It is also shown that the winding flag in SETEMIT only takes effect for Shader topology type, which is believed to be the actual difference between List and Shader (hence removed the TODO). However, only Shader topology type is observed in official games when GS is in use, so the other mode seems to be just unintended usage. | ||||
| * | | correct constness | wwylele | 2017-08-19 | 2 | -2/+4 |
| | | | |||||
| * | | pica/shader/interpreter: implement SETEMIT and EMIT | wwylele | 2017-08-19 | 1 | -0/+16 |
| | | | |||||
| * | | pica/shader: extend UnitState for GS | wwylele | 2017-08-19 | 2 | -0/+84 |
| | | | | | | | | | | | | | | | Among four shader units in pica, a special unit can be configured to run both VS and GS program. GSUnitState represents this unit, which extends UnitState (which represents the other three normal units) with extra state for primitive emitting. It uses lots of raw pointers to represent internal structure in order to keep it standard layout type for JIT to access. This unit doesn't handle triangle winding (inverting) itself; instead, it calls a WindingSetter handler. This will be explained in the following commits | ||||
| * | | pica/regs: layout geometry shader configuration regs | wwylele | 2017-08-10 | 2 | -2/+39 |
| | | | | | | | | | | | | All the register meanings are derived from ctrulib (3dbrew is outdated for most of them) | ||||
* | | | Merge pull request #2914 from wwylele/fresnel-fix | bunnei | 2017-09-05 | 2 | -7/+9 |
|\ \ \ | | | | | | | | | pica/lighting: only apply Fresnel factor for the last light | ||||
| * | | | pica/lighting: only apply Fresnel factor for the last light | wwylele | 2017-09-03 | 2 | -7/+9 |
| | | | | |||||
* | | | | video_core: report telemetry for gas mode | wwylele | 2017-08-31 | 1 | -0/+6 |
|/ / / | |||||
* | | | Merge pull request #2891 from wwylele/sw-bump | bunnei | 2017-08-31 | 4 | -10/+40 |
|\ \ \ | | | | | | | | | SwRasterizer/Lighting: implement bump mapping | ||||
| * | | | gl_rasterizer/lighting: more accurate CP formula | wwylele | 2017-08-22 | 1 | -2/+2 |
| | | | | |||||
| * | | | SwRasterizer/Lighting: implement LUT input CP | wwylele | 2017-08-22 | 1 | -0/+11 |
| | | | | |||||
| * | | | SwRasterizer/Lighting: implement bump mapping | wwylele | 2017-08-22 | 3 | -8/+27 |
| | | | | |||||
* | | | | Merge pull request #2892 from Subv/warnings2 | Weiyi Wang | 2017-08-28 | 3 | -6/+10 |
|\ \ \ \ | |_|_|/ |/| | | | Warnings: Fixed a few missing-return warnings in video_core. | ||||
| * | | | Warnings: Fixed a few missing-return warnings in video_core. | Subv | 2017-08-26 | 3 | -6/+10 |
| |/ / | |||||
* | | | swrasterizer: remove invalid TODO | wwylele | 2017-08-21 | 1 | -4/+2 |
| | | | | | | | | | | | | This function is called in clipping, before the pespective divide, and is not used in later rasterization. Thus it doesn't need perspective correction. | ||||
* | | | swrasterizer/clipper: remove tested TODO | wwylele | 2017-08-21 | 1 | -4/+0 |
| | | | | | | | | | | | | hwtested. Current implementation is the correct behavior | ||||
* | | | gl_shader_gen: simplify and clarify the depth transformation between vertex shader and fragment shader | wwylele | 2017-08-21 | 1 | -2/+5 |
| | | | |||||
* | | | gl_rasterizer: add clipping plane z<=0 defined in PICA | wwylele | 2017-08-21 | 4 | -0/+21 |
|/ / | |||||
* | | Merge pull request #2872 from wwylele/sw-geo-factor | Yuri Kunde Schlesner | 2017-08-21 | 1 | -4/+16 |
|\ \ | | | | | | | SwRasterizer/Lighting: implement geometric factor | ||||
| * | | SwRasterizer/Lighting: implement geometric factor | wwylele | 2017-08-11 | 1 | -4/+16 |
| | | | |||||
* | | | Merge pull request #2871 from wwylele/sw-spotlight | James Rowe | 2017-08-20 | 1 | -3/+19 |
|\ \ \ | | | | | | | | | SwRasterizer/Lighting: implement spot light | ||||
| * | | | SwRasterizer/Lighting: implement spot light | wwylele | 2017-08-11 | 1 | -3/+19 |
| |/ / | |||||
* / / | gl_shader_gen: don't call SampleTexture when bump map is not used | wwylele | 2017-08-11 | 1 | -4/+5 |
|/ / | |||||
* / | SwRasterizer/Lighting: use make_tuple instead of constructor | wwylele | 2017-08-10 | 1 | -1/+1 |
|/ | | | | implicit tuple constructor is a c++17 thing, which is not supported by some not-so-old libraries. Play safe for now | ||||
* | Merge pull request #2822 from wwylele/sw_lighting-2 | Weiyi Wang | 2017-08-09 | 6 | -5/+307 |
|\ | | | | | Implement fragment lighting in the sw renderer (take 2) | ||||
| * | SwRasterizer/Lighting: shorten file name | wwylele | 2017-08-03 | 4 | -4/+4 |
| | | |||||
| * | SwRasterizer/Lighting: move to its own file | wwylele | 2017-08-02 | 4 | -240/+271 |
| | | |||||
| * | SwRasterizer/Lighting: reduce confusion | wwylele | 2017-08-02 | 1 | -1/+1 |
| | | |||||
| * | SwRasterizer/Lighting: move quaternion normalization to the caller | wwylele | 2017-08-02 | 1 | -3/+3 |
| | | |||||
| * | SwRasterizer/Lighting: dist atten lut input need to be clamp | wwylele | 2017-07-11 | 1 | -1/+1 |
| | | |||||
| * | SwRasterizer/Lighting: unify float suffix | wwylele | 2017-07-11 | 1 | -11/+13 |
| | | |||||
| * | SwRasterizer/Lighting: get rid of nested return | wwylele | 2017-07-11 | 1 | -10/+11 |
| | | |||||
| * | SwRasterizer/Lighting: refactor GetLutValue into a function. | wwylele | 2017-07-11 | 1 | -83/+27 |
| | | | | | | | | merging similar pattern. Also makes the code more similar to the gl one | ||||
| * | SwRasterizer: only interpolate quat and view when lighting is enabled | wwylele | 2017-07-11 | 1 | -14/+14 |
| | | |||||
| * | SwRasterizer/Lighting: pass lighting state as parameter | wwylele | 2017-07-11 | 1 | -13/+13 |
| | | |||||
| * | SwRasterizer/Lighting: Move the clamp highlight calculation to the end of the per-light loop body. | Subv | 2017-07-11 | 1 | -17/+17 |
| | | |||||
| * | SwRasterizer/Lighting: Move the lighting enable check outside the ComputeFragmentsColors function. | Subv | 2017-07-11 | 1 | -7/+6 |
| | | |||||
| * | SwRasterizer/Lighting: Do not use global registers state in ComputeFragmentsColors. | Subv | 2017-07-11 | 1 | -3/+3 |
| | | |||||
| * | SwRasterizer/Lighting: Do not use global state in LookupLightingLut. | Subv | 2017-07-11 | 2 | -13/+22 |
| | | |||||
| * | SwRasterizer/Lighting: Fixed a bug where the distance attenuation bias was being set to the dist atten scale. | Subv | 2017-07-11 | 1 | -3/+2 |
| | | |||||
| * | SwRasterizer: Fixed a few conversion warnings and moved per-light values into the per-light loop. | Subv | 2017-07-11 | 1 | -5/+6 |
| | | |||||
| * | SwRasterizer: Run clang-format | Subv | 2017-07-11 | 1 | -45/+83 |
| | | |||||
| * | SwRasterizer: Flip the vertex quaternions before clipping (if necessary). | Subv | 2017-07-11 | 2 | -20/+15 |
| | | |||||
| * | SwRasterizer: Corrected the light LUT lookups. | Subv | 2017-07-11 | 1 | -6/+7 |
| | | |||||
| * | SwRasterizer: Corrected the light LUT lookups. | Subv | 2017-07-11 | 1 | -33/+43 |
| | | |||||
| * | SwRasterizer: Fixed the lighting lut lookup function. | Subv | 2017-07-11 | 1 | -2/+4 |
| | | |||||
| * | SwRasterizer: Calculate fresnel for fragment lighting. | Subv | 2017-07-11 | 1 | -1/+25 |
| | | |||||
| * | SwRasterizer: Calculate specular_1 for fragment lighting. | Subv | 2017-07-11 | 1 | -3/+59 |
| | | |||||
| * | SwRasterizer: Calculate specular_0 for fragment lighting. | Subv | 2017-07-11 | 1 | -13/+94 |
| | | |||||
| * | SwRasterizer: Implement primary fragment color. | Subv | 2017-07-11 | 1 | -4/+113 |
| | | |||||
* | | pica: upload shared shader code to both unit | wwylele | 2017-08-07 | 2 | -26/+45 |
| | | |||||
* | | pica/shader_interpreter: fix off-by-one in LOOP | wwylele | 2017-07-27 | 1 | -1/+1 |
| | | |||||
* | | Merge pull request #2816 from wwylele/proctex-lutlutlut | Sebastian Valle | 2017-07-23 | 5 | -70/+80 |
|\ \ | | | | | | | gl_rasterizer: use texture buffer for proctex LUT | ||||
| * | | gl_rasterizer: use texture buffer for proctex LUT | wwylele | 2017-07-01 | 5 | -70/+80 |
| |/ | |||||
* | | Merge pull request #2834 from wwylele/depth-enable-fix | Sebastian Valle | 2017-07-23 | 1 | -4/+5 |
|\ \ | | | | | | | gl_rasterizer_cache: fix using_depth_fb | ||||
| * | | gl_rasterizer_cache: depth write is disabled if allow_depth_stencil_write is false | wwylele | 2017-06-10 | 1 | -4/+5 |
| | | | |||||
* | | | telemetry: Log performance, configuration, and system data. | bunnei | 2017-07-18 | 2 | -6/+16 |
| |/ |/| | |||||
* | | gl_rasterizer: use texture buffer for fog LUT | wwylele | 2017-06-22 | 7 | -29/+32 |
| | | |||||
* | | gl_rasterizer: create the texture before applying the state | wwylele | 2017-06-22 | 1 | -2/+2 |
| | | | | | | | | this is a rebasing error from #2792. It doesn't affect much though, because the later more Apply() call fixes/hides it | ||||
* | | gl_state: reset 1d textures | wwylele | 2017-06-21 | 1 | -0/+14 |
| | | |||||
* | | gl_rasterizer: fix glGetUniformLocation type | wwylele | 2017-06-21 | 1 | -8/+8 |
| | | |||||
* | | gl_rasterizer: manage texture ids in one place | wwylele | 2017-06-21 | 3 | -31/+55 |
| | | |||||
* | | gl_rasterizer/lighting: fix LUT interpolation | wwylele | 2017-06-21 | 7 | -116/+102 |
| | | |||||
* | | Merge pull request #2776 from wwylele/geo-factor | Yuri Kunde Schlesner | 2017-06-18 | 3 | -7/+26 |
|\ \ | | | | | | | Fragment lighting: implement geometric factor | ||||
| * | | gl_rasterizer/lighting: use the formula from the paper for germetic factor | wwylele | 2017-06-18 | 1 | -8/+8 |
| | | | |||||
| * | | gl_rasterizer/lighting: implement geometric factor | wwylele | 2017-06-15 | 3 | -1/+20 |
| | | | |||||
* | | | Stop using reserved operator names (and/or/xor) with Xbyak | Yuri Kunde Schlesner | 2017-06-17 | 1 | -13/+13 |
|/ / | | | | | | | Also has the Dynarmic upgrade with the same change | ||||
* | | Merge pull request #2762 from wwylele/light-cp-tangent | Yuri Kunde Schlesner | 2017-06-15 | 2 | -10/+38 |
|\ \ | | | | | | | Fragment lighting: implement lut input 5 (CP) and tangent mapping | ||||
| * | | gl_rasterizer/lighting: Implement tangent mapping | wwylele | 2017-06-11 | 1 | -7/+12 |
| | | | |||||
| * | | gl_rasterizer/lighting: implement lut input 5 (CP) | wwylele | 2017-06-11 | 2 | -3/+26 |
| | | | |||||
* | | | Merge pull request #2743 from wwylele/wrap-fix | Yuri Kunde Schlesner | 2017-06-14 | 4 | -12/+48 |
|\ \ \ | | | | | | | | | pica/rasterizer: implement/stub texture wrap mode 4-7 | ||||
| * | | | pica/rasterizer: implement/stub texture wrap mode 4-7 | wwylele | 2017-06-04 | 4 | -12/+48 |
| | | | | |||||
* | | | | Merge pull request #2767 from yuriks/quaternion-flip-comment | Yuri Kunde Schlesner | 2017-06-13 | 1 | -8/+11 |
|\ \ \ \ | |_|/ / |/| | | | OpenGL: Update comment on AreQuaternionsOpposite with new information | ||||
| * | | | OpenGL: Update comment on AreQuaternionsOpposite with new information | Yuri Kunde Schlesner | 2017-06-10 | 1 | -8/+11 |
| | |/ | |/| | | | | | | | | | | | | | | | | While debugging the software renderer implementation, it was noticed that this is actually exactly what the hardware does, upgrading the status of this "hack" to being a proper implementation. And there was much rejoicing. | ||||
* | | | Merge pull request #2727 from wwylele/spot-light | Sebastian Valle | 2017-06-11 | 5 | -28/+128 |
|\ \ \ | |/ / |/| | | Fragment lighting: implement spot light | ||||
| * | | gl_rasterizer: implement spot light | wwylele | 2017-05-30 | 1 | -6/+24 |
| | | | |||||
| * | | gl_rasterizer: sync spot light status | wwylele | 2017-05-30 | 4 | -2/+61 |
| | | | |||||
| * | | pica: prepare registers for spotlight | wwylele | 2017-05-30 | 1 | -20/+43 |
| | | | |||||
* | | | Merge pull request #2721 from wwylele/texture-cube | bunnei | 2017-05-30 | 2 | -3/+77 |
|\ \ \ | |_|/ |/| | | swrasterizer: implemented TextureCube | ||||
| * | | swrasterizer: implement TextureCube | wwylele | 2017-05-29 | 1 | -2/+51 |
| | | | |||||
| * | | pica: add registers for texture cube | wwylele | 2017-05-29 | 1 | -1/+26 |
| | | | |||||
* | | | Merge pull request #2734 from yuriks/cmake-imported-libs | Yuri Kunde Schlesner | 2017-05-30 | 1 | -4/+3 |
|\ \ \ | | | | | | | | | CMake: Use CMake target properties for all libraries | ||||
| * | | | CMake: Create INTERFACE targets for microprofile and nihstro | Yuri Kunde Schlesner | 2017-05-28 | 1 | -1/+1 |
| | | | | |||||
| * | | | CMake: Use IMPORTED target for libpng | Yuri Kunde Schlesner | 2017-05-28 | 1 | -3/+2 |
| | | | | |||||
* | | | | Merge pull request #2729 from yuriks/quaternion-fix | Yuri Kunde Schlesner | 2017-05-28 | 1 | -3/+5 |
|\ \ \ \ | |/ / / |/| | | | OpenGL: Improve accuracy of quaternion interpolation | ||||
| * | | | OpenGL: Improve accuracy of quaternion interpolation | Yuri Kunde Schlesner | 2017-05-27 | 1 | -3/+5 |
| | |/ | |/| | | | | | | | | | | | | | | | | Current order of operations (rotate then normalize) seems to produce a lot more distortion than normalizing and then rotating. This makes Citra results match pretty closesly with hardware, and indicates that hardware may also be using lerp instead of slerp to interpolate the quaternions. | ||||
* | | | CMake: Correct inter-module dependencies and library visibility | Yuri Kunde Schlesner | 2017-05-28 | 1 | -5/+7 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modules didn't correctly define their dependencies before, which relied on the frontends implicitly including every module for linking to succeed. Also changed every target_link_libraries call to specify visibility of dependencies to avoid leaking definitions to dependents when not necessary. | ||||
* | | | Move screen size constants from video_core to core | Yuri Kunde Schlesner | 2017-05-28 | 2 | -27/+8 |
| | | | | | | | | | | | | | | | video_core didn't even properly use them, and they were the source of many otherwise-unnecessary dependencies from core to video_core. | ||||
* | | | OpenGL: Remove unused RendererOpenGL fields | Yuri Kunde Schlesner | 2017-05-28 | 2 | -11/+2 |
| |/ |/| | |||||
* | | gl_shader: refactor texture sampler into its own function | wwylele | 2017-05-27 | 1 | -40/+39 |
|/ | |||||
* | Merge pull request #2697 from wwylele/proctex | Yuri Kunde Schlesner | 2017-05-25 | 14 | -11/+1038 |
|\ | | | | | Implemented Procedural Texture (Texture Unit 3) | ||||
| * | gl_rasterizer: implement procedural texture | wwylele | 2017-05-20 | 6 | -7/+600 |
| | | |||||
| * | pica/swrasterizer: implement procedural texture | wwylele | 2017-05-20 | 8 | -4/+438 |
| | | |||||
* | | swrasterizer: add missing tc0_w and fragment lighting attribute processing | wwylele | 2017-05-21 | 2 | -5/+8 |
| | | |||||
* | | pica: use correct register value for shader bool_uniforms | wwylele | 2017-05-17 | 1 | -2/+2 |
| | | | | | | | | variable value is not masked. the masked and combined register value should be used instead | ||||
* | | Merge pull request #2703 from wwylele/pica-reg-revise | Yuri Kunde Schlesner | 2017-05-16 | 4 | -17/+25 |
|\ \ | | | | | | | pica: correct bit field length for some registers | ||||
| * | | pica: correct bit field length for some registers | wwylele | 2017-05-16 | 4 | -17/+25 |
| |/ | |||||
* | | Pica: Write GS registers | Jannik Vogel | 2017-05-12 | 1 | -0/+52 |
| | | | | | | | | This adds the handlers for the geometry shader register writes which will call the functions from the previous commit to update registers for the GS. | ||||
* | | Pica: Write shader registers in functions | Jannik Vogel | 2017-05-12 | 1 | -57/+103 |
| | | | | | | | | The commit after this one adds GS register writes, so this moves the VS handlers into functions so they can be re-used and extended more easily. | ||||
* | | Pica: Set program code / swizzle data limit to 4096 | Jannik Vogel | 2017-05-11 | 5 | -13/+16 |
|/ | | | | | | | | | | | | | One of the later commits will enable writing to GS regs. It turns out that on startup, most games will write 4096 GS program words. The current limit of 1024 would hence result in 3072 (4096 - 1024) error messages: ``` HW.GPU <Error> video_core/shader/shader.cpp:WriteProgramCode:229: Invalid GS program offset 1024 ``` New constants have been introduced to represent these limits. The swizzle data size has also been raised. This matches the given field sizes of [GPUREG_SH_OPDESCS_INDEX](https://3dbrew.org/wiki/GPU/Internal_Registers#GPUREG_SH_OPDESCS_INDEX) and [GPUREG_SH_CODETRANSFER_INDEX](https://www.3dbrew.org/wiki/GPU/Internal_Registers#GPUREG_SH_CODETRANSFER_INDEX) (12 bit = [0; 4095]). | ||||
* | pica: shader_dirty if texture2 coord changed | wwylele | 2017-05-05 | 5 | -7/+12 |
| | |||||
* | pica: use correct coordinates for texture 2 | wwylele | 2017-05-03 | 4 | -5/+22 |
| | |||||
* | Merge pull request #2671 from wwylele/dot3-rgba | bunnei | 2017-04-21 | 4 | -22/+39 |
|\ | | | | | rasterizer: implement combiner operation 7 (Dot3_RGBA) | ||||
| * | gl_shader_gen: remove TODO about Lerp behaviour verification. The implementation is verified against hardware | wwylele | 2017-04-20 | 1 | -2/+0 |
| | | |||||
| * | rasterizer: implement combiner operation 7 (Dot3_RGBA) | wwylele | 2017-04-19 | 4 | -20/+39 |
| | | |||||
* | | OpenGL: Pass Pica regs via parameter | Yuri Kunde Schlesner | 2017-04-17 | 3 | -7/+5 |
| | | |||||
* | | OpenGL: Move PicaShaderConfig to gl_shader_gen.h | Yuri Kunde Schlesner | 2017-04-17 | 4 | -202/+206 |
| | | | | | | | | Also move the implementation of CurrentConfig to the cpp file. | ||||
* | | OpenGL: Move Attributes enum to a more appropriate file | Yuri Kunde Schlesner | 2017-04-17 | 3 | -12/+11 |
|/ | |||||
* | Pica/Regs: Correct bit width for blend-equations | Jannik Vogel | 2017-04-08 | 1 | -2/+2 |
| | |||||
* | Input: remove unused stuff & clean up | wwylele | 2017-03-01 | 1 | -0/+1 |
| | | | | | | | 1. removed zl, zr and c-stick from HID::PadState. They are handled by IR, not HID 2. removed button handling in EmuWindow 3. removed key_map 4. cleanup #include | ||||
* | Doxygen: Amend minor issues (#2593) | Mat M | 2017-02-27 | 3 | -3/+5 |
| | | | | | | | | | Corrects a few issues with regards to Doxygen documentation, for example: - Incorrect parameter referencing. - Missing @param tags. - Typos in @param tags. and a few minor other issues. | ||||
* | Core: Re-write frame limiter | Yuri Kunde Schlesner | 2017-02-27 | 1 | -3/+3 |
| | | | | | | | | | Now based on std::chrono, and also works in terms of emulated time instead of frames, so we can in the future frame-limit even when the display is disabled, etc. The frame limiter can also be enabled along with v-sync now, which should be useful for those with displays running at more than 60 Hz. | ||||
* | Core: Make PerfStats internally locked | Yuri Kunde Schlesner | 2017-02-27 | 1 | -8/+2 |
| | | | | More ergonomic to use and will be required for upcoming changes. | ||||
* | Remove built-in (non-Microprofile) profiler | Yuri Kunde Schlesner | 2017-02-27 | 1 | -8/+0 |
| | |||||
* | Add performance statistics to status bar | Yuri Kunde Schlesner | 2017-02-27 | 1 | -0/+9 |
| | |||||
* | OpenGL: Check if uniform block exists before updating it (#2581) | Jannik Vogel | 2017-02-18 | 1 | -29/+30 |
| | |||||
* | video_core: remove #pragma once in cpp file (#2570) | Weiyi Wang | 2017-02-15 | 2 | -4/+0 |
| | |||||
* | SWRasterizer: Move more framebuffer functions to file | Yuri Kunde Schlesner | 2017-02-13 | 3 | -100/+105 |
| | |||||
* | SWRasterizer: Move texturing functions to their own file | Yuri Kunde Schlesner | 2017-02-13 | 4 | -210/+259 |
| | |||||
* | SWRasterizer: Convert large no-capture lambdas to standalone functions | Yuri Kunde Schlesner | 2017-02-13 | 1 | -315/+310 |
| | |||||
* | SWRasterizer: Move framebuffer operation functions to their own file | Yuri Kunde Schlesner | 2017-02-13 | 4 | -236/+285 |
| | |||||
* | VideoCore: Move software rasterizer files to sub-directory | Yuri Kunde Schlesner | 2017-02-13 | 8 | -12/+12 |
| | |||||
* | video_core/shader: Document sanitized MUL operation | Yuri Kunde Schlesner | 2017-02-12 | 1 | -0/+8 |
| | |||||
* | Merge pull request #2550 from yuriks/pica-refactor2 | Yuri Kunde Schlesner | 2017-02-12 | 17 | -138/+130 |
|\ | | | | | Small VideoCore cleanups | ||||
| * | VideoCore: Split u64 Pica reg unions into 2 separate u32 unions | Yuri Kunde Schlesner | 2017-02-09 | 1 | -36/+42 |
| | | | | | | | | | | This eliminates UB when aliasing it with the array of u32 regs, and is compatible with non-LE architectures. | ||||
| * | VideoCore: Force enum sizes to u32 in LightingRegs | Yuri Kunde Schlesner | 2017-02-09 | 1 | -4/+4 |
| | | | | | | | | | | All enums that are used with BitField must have their type forced to u32 to ensure correctness. | ||||
| * | OpenGL: Remove unused duplicate of IsPassThroughTevStage | Yuri Kunde Schlesner | 2017-02-09 | 1 | -12/+0 |
| | | | | | | | | | | This copy was left behind when the shader generation code was moved to a separate file. | ||||
| * | VideoCore: Split regs.h inclusions | Yuri Kunde Schlesner | 2017-02-09 | 13 | -24/+45 |
| | | |||||
| * | Pica/Regs: Use binary search to look up reg names | Yuri Kunde Schlesner | 2017-02-09 | 2 | -15/+10 |
| | | | | | | | | | | | | This gets rid of the static unordered_map. Also changes the return type const char*, avoiding unnecessary allocations (the result was only used by calling .c_str() on it.) | ||||
| * | VideoCore: Use union to index into Regs struct | Yuri Kunde Schlesner | 2017-02-09 | 2 | -46/+28 |
| | | | | | | | | Also remove some unused members. | ||||
* | | video_core: Fix benign out-of-bounds indexing of array (#2553) | Yuri Kunde Schlesner | 2017-02-11 | 1 | -2/+1 |
|/ | | | | | | The resulting pointer wasn't written to unless the index was verified as valid, but that's still UB and triggered debug checks in MSVC. Reported by garrettboast on IRC | ||||
* | Merge pull request #2482 from yuriks/pica-refactor | Yuri Kunde Schlesner | 2017-02-09 | 33 | -2397/+2604 |
|\ | | | | | Split up monolithic Regs struct | ||||
| * | VideoCore: Move Regs to its own file | Yuri Kunde Schlesner | 2017-02-04 | 22 | -658/+679 |
| | | |||||
| * | VideoCore: Split shader regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 9 | -102/+116 |
| | | |||||
| * | VideoCore: Split geometry pipeline regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 9 | -264/+292 |
| | | |||||
| * | VideoCore: Split lighting regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 6 | -312/+341 |
| | | |||||
| * | VideoCore: Split framebuffer regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 10 | -445/+491 |
| | | |||||
| * | VideoCore: Split texturing regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 15 | -494/+532 |
| | | |||||
| * | VideoCore: Split rasterizer regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 13 | -187/+218 |
| | | |||||
* | | Use std::array<u8,2> instead of u8[2] to fix MSVC build | Lectem | 2017-02-05 | 1 | -1/+1 |
|/ | |||||
* | Merge pull request #2476 from yuriks/shader-refactor3 | Yuri Kunde Schlesner | 2017-02-04 | 16 | -161/+160 |
|\ | | | | | Oh No! More shader changes! | ||||
| * | VideoCore: Make PrimitiveAssembler const-correct | Yuri Kunde Schlesner | 2017-01-30 | 2 | -3/+4 |
| | | |||||
| * | VideoCore: Extract swrast-specific data from OutputVertex | Yuri Kunde Schlesner | 2017-01-30 | 5 | -58/+64 |
| | | |||||
| * | VideoCore/Shader: Clean up OutputVertex::FromAttributeBuffer | Yuri Kunde Schlesner | 2017-01-30 | 2 | -10/+16 |
| | | | | | | | | | | | | This also fixes a long-standing but neverthless harmless memory corruption bug, whech the padding of the OutputVertex struct would get corrupted by unused attributes. | ||||
| * | VideoCore: Split shader output writing from semantic loading | Yuri Kunde Schlesner | 2017-01-30 | 3 | -24/+24 |
| | | |||||
| * | VideoCore: Consistently use shader configuration to load attributes | Yuri Kunde Schlesner | 2017-01-30 | 6 | -44/+23 |
| | | |||||
| * | VideoCore: Use correct register for immediate mode attribute count | Yuri Kunde Schlesner | 2017-01-30 | 2 | -7/+13 |
| | | |||||
| * | VideoCore: Rename some types to more accurate names | Yuri Kunde Schlesner | 2017-01-30 | 8 | -18/+18 |
| | | |||||
| * | VideoCore: Change misleading register names | Yuri Kunde Schlesner | 2017-01-30 | 4 | -8/+9 |
| | | | | | | | | | | | | A few registers had names such as "count" or "number" when they actually contained the maximum (that is, count - 1). This can easily lead to hard to notice off by one errors. | ||||
* | | Pica/Texture: Move part of ETC1 decoding to new file and cleanups | Yuri Kunde Schlesner | 2017-02-04 | 4 | -110/+159 |
| | | |||||
* | | Pica/Texture: Simplify/cleanup texture tile addressing | Yuri Kunde Schlesner | 2017-02-04 | 4 | -37/+111 |
| | | |||||
* | | VideoCore: Move LookupTexture out of debug_utils.h | Yuri Kunde Schlesner | 2017-02-04 | 7 | -301/+340 |
| | | |||||
* | | ShaderJIT: add 16 dummy bytes at the bottom of the stack | wwylele | 2017-02-03 | 1 | -2/+5 |
| | | |||||
* | | Common/x64: remove legacy emitter and abi (#2504) | Weiyi Wang | 2017-01-31 | 1 | -1/+0 |
| | | | | | | These are not used any more since we moved shader JIT to xbyak. | ||||
* | | shader_jit_x64_compiler: esi and edi should be persistent (#2500) | Merry | 2017-01-31 | 1 | -0/+2 |
| | | |||||
* | | video_core: gl_rasterizer_cache.cpp removed unused type alias | Kloen | 2017-01-30 | 1 | -1/+0 |
| | | |||||
* | | video_core: gl_rasterizer.cpp removed unused type alias | Kloen | 2017-01-30 | 1 | -2/+0 |
|/ | |||||
* | video_core: silence unused-local-typedef boost related warning on GCC | Kloen | 2017-01-29 | 1 | -0/+7 |
| | |||||
* | VideoCore/Shader: Move entry_point to SetupBatch | Yuri Kunde Schlesner | 2017-01-26 | 6 | -26/+27 |
| | |||||
* | VideoCore/Shader: Move per-batch ShaderEngine state into ShaderSetup | Yuri Kunde Schlesner | 2017-01-26 | 6 | -44/+40 |
| | |||||
* | Shader: Remove OutputRegisters struct | Yuri Kunde Schlesner | 2017-01-26 | 4 | -22/+17 |
| | |||||
* | Shader: Initialize conditional_code in interpreter | Yuri Kunde Schlesner | 2017-01-26 | 2 | -3/+3 |
| | | | | | | | This doesn't belong in LoadInputVertex because it also happens for non-VS invocations. Since it's not used by the JIT it seems adequate to initialize it in the interpreter which is the only thing that cares about them. | ||||
* | Shader: Don't read ShaderSetup from global state | Yuri Kunde Schlesner | 2017-01-26 | 1 | -3/+3 |
| | |||||
* | shader_jit_x64: Don't read program from global state | Yuri Kunde Schlesner | 2017-01-26 | 3 | -22/+22 |
| | |||||
* | VideoCore/Shader: Move ProduceDebugInfo to InterpreterEngine | Yuri Kunde Schlesner | 2017-01-26 | 4 | -19/+10 |
| | |||||
* | VideoCore/Shader: Split interpreter and JIT into separate ShaderEngines | Yuri Kunde Schlesner | 2017-01-26 | 8 | -97/+153 |
| | |||||
* | VideoCore/Shader: Rename shader_jit_x64{ => _compiler}.{cpp,h} | Yuri Kunde Schlesner | 2017-01-26 | 4 | -4/+4 |
| | |||||
* | VideoCore/Shader: Split shader uniform state and shader engine | Yuri Kunde Schlesner | 2017-01-26 | 4 | -21/+54 |
| | | | | | Currently there's only a single dummy implementation, which will be split in a following commit. | ||||
* | VideoCore/Shader: Add constness to methods | Yuri Kunde Schlesner | 2017-01-26 | 2 | -4/+4 |
| | |||||
* | VideoCore/Shader: Use only entry_point as ShaderSetup param | Yuri Kunde Schlesner | 2017-01-26 | 3 | -11/+13 |
| | | | | | This removes all implicit dependency of ShaderState on global PICA state. | ||||
* | VideoCore/Shader: Use self instead of g_state.vs in ShaderSetup | Yuri Kunde Schlesner | 2017-01-26 | 2 | -11/+8 |
| | |||||
* | VideoCore/Shader: Extract input vertex loading code into function | Yuri Kunde Schlesner | 2017-01-26 | 3 | -22/+26 |
| | |||||
* | video_core: fix shader.cpp signed / unsigned warning | Kloen | 2017-01-23 | 1 | -2/+2 |
| | |||||
* | video_core: gl_rasterizer float to int warning | Kloen | 2017-01-23 | 1 | -1/+2 |
| | |||||
* | video_core: fix gl_rasterizer warning on MSVC | Kloen | 2017-01-23 | 1 | -1/+1 |
| | |||||
* | config: Add option for specifying screen resolution scale factor. | bunnei | 2017-01-07 | 3 | -5/+10 |
| | |||||
* | Fix some warnings (#2399) | Jonathan Hao | 2017-01-04 | 1 | -2/+0 |
| | |||||
* | Merge pull request #2367 from JayFoxRox/lighting-lut-quickfix | bunnei | 2016-12-29 | 1 | -10/+9 |
|\ | | | | | Lighting LUT Quickfix | ||||
| * | Minor cleanup in GLSL code | Jannik Vogel | 2016-12-25 | 1 | -3/+2 |
| | | |||||
| * | Offset lighting LUT samples correctly | Jannik Vogel | 2016-12-25 | 1 | -7/+7 |
| | | |||||
* | | core: Move emu_window and key_map into core | MerryMage | 2016-12-23 | 2 | -2/+2 |
|/ | | | | * Removes circular dependences (common should not depend on core) | ||||
* | Merge pull request #2319 from yuriks/profile-scopes | bunnei | 2016-12-21 | 2 | -0/+15 |
|\ | | | | | VideoCore: Make profiling scope more representative | ||||
| * | VideoCore: Make profiling scope more representative | Yuri Kunde Schlesner | 2016-12-15 | 2 | -0/+15 |
| | | |||||
* | | Use GL_TRUE when setting color_mask | Albin Bernhardsson | 2016-12-19 | 1 | -4/+4 |
| | | |||||
* | | Merge pull request #2318 from yuriks/trace-opt | bunnei | 2016-12-19 | 3 | -16/+15 |
|\ \ | | | | | | | VideoCore: Inline IsPicaTracing | ||||
| * | | VideoCore: Inline IsPicaTracing | Yuri Kunde Schlesner | 2016-12-15 | 3 | -16/+15 |
| |/ | | | | | | | Speeds up ALBW main menu slightly (~3%) | ||||
* | | VideoCore/Shader: Extract DebugData out from UnitState | Yuri Kunde Schlesner | 2016-12-16 | 8 | -103/+99 |
| | | |||||
* | | Remove unnecessary cast | Yuri Kunde Schlesner | 2016-12-16 | 1 | -3/+1 |
| | | |||||
* | | VideoCore/Shader: Extract evaluate_condition lambda to function scope | Yuri Kunde Schlesner | 2016-12-16 | 1 | -26/+24 |
| | | |||||
* | | VideoCore/Shader: Extract call lambda up a scope and remove unused param | Yuri Kunde Schlesner | 2016-12-16 | 1 | -21/+17 |
| | | |||||
* | | VideoCore/Shader: Remove dynamic control flow in (Get)UniformOffset | Yuri Kunde Schlesner | 2016-12-16 | 2 | -18/+11 |
| | | |||||
* | | VideoCore/Shader: Move DebugData to a separate file | Yuri Kunde Schlesner | 2016-12-16 | 4 | -172/+189 |
| | | |||||
* | | shader_jit_x64: Use LOOPCOUNT_REG as a 64-bit reg when indexing | Yuri Kunde Schlesner | 2016-12-15 | 1 | -1/+1 |
|/ | |||||
* | VideoCore: Eliminate an unnecessary copy in the drawcall loop | Yuri Kunde Schlesner | 2016-12-15 | 3 | -5/+3 |
| | |||||
* | shader_jit_x64: Use Reg32 for LOOP* registers, eliminating casts | Yuri Kunde Schlesner | 2016-12-15 | 1 | -16/+16 |
| | |||||
* | VideoCore: Convert x64 shader JIT to use Xbyak for assembly | Yuri Kunde Schlesner | 2016-12-15 | 3 | -223/+228 |
| | |||||
* | Add all services to the Service namespace | Lioncash | 2016-12-11 | 2 | -6/+7 |
| | | | | | Previously there was a split where some of the services were in the Service namespace and others were not. | ||||
* | OpenGL: Drop framebuffer completeness check. | Markus Wick | 2016-12-07 | 5 | -47/+8 |
| | | | | | | | This OpenGL call synchronize the worker thread of the nvidia blob. It can be verified on linux with the __GL_THREADED_OPTIMIZATIONS=1 environment variable. Those errors should not happen on tested drivers. It was used as a workaround for https://bugs.freedesktop.org/show_bug.cgi?id=94148 | ||||
* | Implement Frame rate limiter (#2223) | emmauss | 2016-12-06 | 2 | -0/+2 |
| | | | | | | * implement frame limiter * fixes | ||||
* | ASSERT that shader was linked successfully | Jannik Vogel | 2016-12-05 | 1 | -0/+2 |
| | |||||
* | Report shader uniform block size in case of mismatch | Jannik Vogel | 2016-12-05 | 1 | -1/+3 |
| | |||||
* | Print broken shader code to log | Jannik Vogel | 2016-12-05 | 1 | -3/+9 |
| | |||||
* | OpenGL: Non-zero stride only makes sense for linear buffers | Yuri Kunde Schlesner | 2016-12-04 | 3 | -7/+11 |
| | |||||
* | OpenGL: Ensure framebuffer binding is restored if completion check fails | Yuri Kunde Schlesner | 2016-12-04 | 1 | -10/+7 |
| | |||||
* | OpenGL: Fix DisplayTransfer accel when input width != output width | Yuri Kunde Schlesner | 2016-12-04 | 1 | -1/+10 |
| | | | | Fixes #2246, #2261 | ||||
* | Merge pull request #2259 from JayFoxRox/fix-fallback | Yuri Kunde Schlesner | 2016-12-04 | 1 | -1/+1 |
|\ | | | | | shader_jit: Fix non-SSE4.1 path where FLR would not truncate | ||||
| * | shader_jit: Fix non-SSE4.1 path where FLR would not truncate | Jannik Vogel | 2016-12-04 | 1 | -1/+1 |
| | | |||||
* | | clang-format: Fix coding style | Yuri Kunde Schlesner | 2016-12-03 | 1 | -1/+1 |
|/ | |||||
* | shader_jit: Load LOOPCOUNT_REG and LOOPINC 4 bit left-shifted | Jannik Vogel | 2016-12-02 | 1 | -6/+9 |
| | |||||
* | ClangFormat: Fixed the clang-format errors | Subv | 2016-11-30 | 2 | -6/+10 |
| | |||||
* | Build: Fixed a few warnings. | Subv | 2016-11-29 | 2 | -7/+7 |
| | |||||
* | Merge pull request #2222 from linkmauve/die-frameskip-die | Yuri Kunde Schlesner | 2016-11-28 | 1 | -4/+0 |
|\ | | | | | Remove the broken frame_skip option | ||||
| * | GPU: Remove the broken frame_skip option. | Emmanuel Gil Peyrot | 2016-11-27 | 1 | -4/+0 |
| | | | | | | | | Fixes #1960. | ||||
* | | RasterizerGL: Use GL_TRUE and 0xFF in the stencil and depth masks instead of simply true and -1 | Subv | 2016-11-27 | 2 | -4/+4 |
| | | |||||
* | | Rasterizer/Memfill: Set the correct stencil write mask when clearing the stencil buffer. | Subv | 2016-11-27 | 1 | -1/+1 |
|/ | |||||
* | Cache Vertices instead of Output registers (#2165) | jphalimi | 2016-11-24 | 1 | -6/+7 |
| | | | | This patch brings +3% performance improvement on average. It removes ToVertex() as an important hotspot of the emulator. | ||||
* | Fix format error from #2195 | wwylele | 2016-11-22 | 1 | -1/+1 |
| | |||||
* | Merge pull request #2195 from Subv/factor_check | bunnei | 2016-11-20 | 1 | -6/+5 |
|\ | | | | | GPU/CiTrace: Avoid calling GetTextures() when not necessary. | ||||
| * | GPU/CiTrace: Avoid calling GetTextures() when not necessary. | Subv | 2016-11-20 | 1 | -6/+5 |
| | | |||||
* | | Merge pull request #2194 from jroweboy/extremely-minor-clangformat-change | James Rowe | 2016-11-19 | 1 | -1/+1 |
|\ \ | |/ |/| | Minor formatting change | ||||
| * | Minor formatting change | James Rowe | 2016-11-19 | 1 | -1/+1 |
| | | |||||
* | | Add default hotkey to swap primary screens. | James Rowe | 2016-11-05 | 1 | -3/+2 |
| | | | | | | | | Also minor style changes | ||||
* | | Support additional screen layouts. | James Rowe | 2016-11-05 | 1 | -6/+12 |
|/ | | | | | Allows users to choose a single screen layout or a large screen layout. Adds a configuration option to change the prominent screen. | ||||
* | Fix typos | Ricardo de Almeida Gonzaga | 2016-10-20 | 1 | -1/+1 |
| | |||||
* | Merge pull request #2082 from yuriks/shader-interp-crash | bunnei | 2016-10-07 | 2 | -35/+43 |
|\ | | | | | Fix/mask crash in shader debugger in Mii Maker | ||||
| * | VideoCore: Shader interpreter cleanups | Yuri Kunde Schlesner | 2016-09-30 | 1 | -32/+42 |
| | | |||||
| * | VideoCore: Fix out-of-bounds read in ShaderSetup::ProduceDebugInfo | Yuri Kunde Schlesner | 2016-09-30 | 1 | -3/+1 |
| | | | | | | | | | | | | As far as I can tell, memset was replaced by a fill without correcting the parameter type, causing an out-of-bounds array read in the Vec4 constructor. | ||||
* | | Merge pull request #2103 from wwylele/gpu-reg-cleanup | bunnei | 2016-10-04 | 3 | -6/+12 |
|\ \ | |/ |/| | GPU: DisplayTransfer & MemoryFill cleanup and param check | ||||
| * | rasterizer: separate TextureCopy from DisplayTransfer | wwylele | 2016-09-29 | 3 | -6/+12 |
| | | |||||
* | | OpenGL: Take cached viewport sub-rect into account for scissor | Yuri Kunde Schlesner | 2016-09-30 | 3 | -29/+25 |
|/ | | | | Fixes #1938 | ||||
* | Remove special rules for Windows.h and library includes | Yuri Kunde Schlesner | 2016-09-21 | 1 | -1/+1 |
| | |||||
* | Use negative priorities to avoid special-casing the self-include | Yuri Kunde Schlesner | 2016-09-21 | 18 | -18/+18 |
| | |||||
* | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 2016-09-21 | 35 | -105/+17 |
| | | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation. | ||||
* | Manually tweak source formatting and then re-run clang-format | Yuri Kunde Schlesner | 2016-09-19 | 23 | -125/+119 |
| | |||||
* | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | 2016-09-18 | 42 | -2532/+2943 |
| | |||||
* | VideoCore: Fix dangling lambda context in shader interpreter | Yuri Kunde Schlesner | 2016-09-16 | 1 | -1/+1 |
| | | | | | | The static meant that after the first execution, these lambda context would be pointing to a random location on the stack. Fixes a random crash when using the interpreter. | ||||
* | Merge pull request #2032 from bunnei/qt-graphics | bunnei | 2016-09-01 | 1 | -0/+1 |
|\ | | | | | Qt graphics configure & V-Sync option | ||||
| * | config: Add a setting for graphics V-Sync. | bunnei | 2016-08-30 | 1 | -0/+1 |
| | | |||||
* | | OpenGL: Avoid error on unsupported lighting LUT | Jannik Vogel | 2016-08-30 | 1 | -0/+1 |
|/ | |||||
* | OpenGL: Add scaled resolution support to scissor | Yuri Kunde Schlesner | 2016-06-28 | 4 | -3/+16 |
| | |||||
* | PICA: Scissor fixes and cleanups | Yuri Kunde Schlesner | 2016-06-28 | 5 | -45/+39 |
| | |||||
* | PICA: Implement scissor test | Subv | 2016-06-28 | 5 | -3/+105 |
| | |||||
* | Remove superfluous std::move in return std::move(local_var) | scurest | 2016-06-25 | 1 | -1/+1 |
| | |||||
* | OpenGL: Implement fog | Jannik Vogel | 2016-06-07 | 5 | -7/+124 |
| | |||||
* | Rasterizer: Implement fog | Jannik Vogel | 2016-06-07 | 1 | -21/+52 |
| | |||||
* | Pica: Add fog state | Jannik Vogel | 2016-06-07 | 3 | -14/+69 |
| | |||||
* | OpenGL: Avoid undefined behaviour for UNIFORM_BLOCK_DATA_SIZE | Jannik Vogel | 2016-06-07 | 2 | -6/+8 |
| | |||||
* | gsp::gpu: Reset g_thread_id in UnregisterInterruptRelayQueue | mailwl | 2016-06-01 | 1 | -1/+1 |
| | |||||
* | Merge pull request #1812 from JayFoxRox/refactor-shader | bunnei | 2016-06-01 | 4 | -64/+81 |
|\ | | | | | Retrieve shader result from new OutputRegisters-type | ||||
| * | Retrieve shader result from new OutputRegisters-type | Jannik Vogel | 2016-05-16 | 4 | -64/+81 |
| | | |||||
* | | Merge pull request #1846 from JayFoxRox/missing-dirty-lighting | bunnei | 2016-05-26 | 4 | -43/+140 |
|\ \ | | | | | | | OpenGL: Set shader_dirty on lighting changes | ||||
| * | | OpenGL: Set shader_dirty on lighting changes | Jannik Vogel | 2016-05-23 | 1 | -0/+23 |
| | | | |||||
| * | | Pica: Name LightSrc.config register | Jannik Vogel | 2016-05-23 | 2 | -17/+15 |
| | | | |||||
| * | | Pica: Name lighting.config0 and .config1 registers | Jannik Vogel | 2016-05-23 | 2 | -18/+18 |
| | | | |||||
| * | | OpenGL: Use uniforms for dist_atten_bias and dist_atten_scale | Jannik Vogel | 2016-05-23 | 3 | -8/+84 |
| | | | |||||
* | | | Merge pull request #1733 from lioncash/vert_loader | bunnei | 2016-05-24 | 3 | -11/+23 |
|\ \ \ | |/ / |/| | | VertexLoader: Minor changes | ||||
| * | | vertex_loader: Correct forward declaration of InputVertex | Lioncash | 2016-05-09 | 1 | -1/+1 |
| | | | | | | | | | | | | It's actually a struct, not a class. | ||||
| * | | vertex_loader: Provide an assertion for ensuring the loader has been setup | Lioncash | 2016-05-09 | 2 | -0/+7 |
| | | | | | | | | | | | | | | | Also adds an assert to ensure that Setup is not called more than once during a VertexLoader's lifetime. | ||||
| * | | vertex_loader: Add constructors to facilitate immediate and two-step initialization | Lioncash | 2016-05-09 | 2 | -2/+6 |
| | | | |||||
| * | | vertex_loader: initialize_num_total_attributes. | Lioncash | 2016-05-09 | 1 | -1/+1 |
| | | | | | | | | | | | | Keeps the public API sane. | ||||
| * | | vertex_loader: Use std::array instead of raw C arrays | Lioncash | 2016-05-09 | 1 | -6/+7 |
| | | | |||||
| * | | vertex_loader: Correct header ordering | Lioncash | 2016-05-09 | 1 | -1/+1 |
| | | | |||||
* | | | Refactor Tev stage dumper | Jannik Vogel | 2016-05-21 | 2 | -115/+114 |
| | | | |||||
* | | | Extend Tev stage dumper | Jannik Vogel | 2016-05-21 | 1 | -14/+38 |
| | | | |||||
* | | | Merge pull request #1786 from JayFoxRox/blend-equation | bunnei | 2016-05-17 | 4 | -0/+31 |
|\ \ \ | |_|/ |/| | | OpenGL: Support blend equation | ||||
| * | | OpenGL: Support blend equation | Jannik Vogel | 2016-05-12 | 4 | -0/+31 |
| | | | |||||
* | | | Merge pull request #1787 from JayFoxRox/refactor-jit | linkmauve | 2016-05-16 | 6 | -32/+50 |
|\ \ \ | | | | | | | | | Refactor JIT | ||||
| * | | | Use new shader-jit signature for interpreter | Jannik Vogel | 2016-05-13 | 3 | -8/+8 |
| | | | | |||||
| * | | | Refactor access to state in shader-jit | Jannik Vogel | 2016-05-13 | 4 | -24/+42 |
| | | | | |||||
* | | | | OpenGL: Only update depth uniforms if the depth changed | Jannik Vogel | 2016-05-14 | 2 | -9/+22 |
| | | | | |||||
* | | | | OpenGL: value-initialize variables which cause uninitialised access otherwise | Jannik Vogel | 2016-05-14 | 1 | -2/+2 |
|/ / / | |||||
* | | | Move program_counter and call_stack from UnitState to interpreter | Jannik Vogel | 2016-05-12 | 3 | -45/+42 |
| | | | |||||
* | | | Move default_attributes into Pica state | Jannik Vogel | 2016-05-12 | 4 | -4/+4 |
|/ / | |||||
* | | Merge pull request #1690 from JayFoxRox/tex-type-3 | bunnei | 2016-05-12 | 7 | -38/+106 |
|\ \ | | | | | | | Pica: Implement texture type 3 (Projection2D) | ||||
| * | | OpenGL: Implement texture type 3 | Jannik Vogel | 2016-05-11 | 4 | -35/+67 |
| | | | |||||
| * | | Rasterizer: Implement texture type 3 | Jannik Vogel | 2016-05-11 | 1 | -2/+27 |
| | | | |||||
| * | | Pica: Add tc0.w to OutputVertex | Jannik Vogel | 2016-05-11 | 1 | -1/+2 |
| | | | |||||
| * | | Pica: Add texture type to state | Jannik Vogel | 2016-05-11 | 1 | -0/+10 |
| | | | |||||
* | | | Turn ShaderSetup into struct | Jannik Vogel | 2016-05-11 | 4 | -57/+58 |
|/ / | |||||
* | | Merge pull request #1621 from JayFoxRox/w-buffer | bunnei | 2016-05-11 | 6 | -14/+65 |
|\ \ | | | | | | | Implement W-buffer and fix depth-mapping | ||||
| * | | OpenGL: Implement W-Buffers and fix depth-mapping | Jannik Vogel | 2016-05-10 | 3 | -4/+23 |
| | | | |||||
| * | | Pica: Implement W-Buffer in SW rasterizer | Jannik Vogel | 2016-05-10 | 4 | -11/+43 |
| | | | |||||
* | | | gl_rasterizer: Fix compilation for debug builds | Lioncash | 2016-05-10 | 1 | -1/+1 |
|/ / | |||||
* | | Merge pull request #1704 from JayFoxRox/pod-config | linkmauve | 2016-05-10 | 3 | -122/+164 |
|\ \ | |/ |/| | Pica: PicaShaderConfig is TC and cleared before use | ||||
| * | Pica: Use a union for PicaShaderConfig | Jannik Vogel | 2016-05-03 | 3 | -125/+139 |
| | | |||||
| * | Pica: Add TevStageConfigRaw to PicaShaderConfig (MSVC workaround) | Jannik Vogel | 2016-05-03 | 2 | -2/+23 |
| | | |||||
| * | Pica: Make PicaShaderConfig trivially_copyable and clear it before use | Jannik Vogel | 2016-05-03 | 1 | -21/+28 |
| | | |||||
* | | fixup simple type conversions where possible | Alexander Laties | 2016-05-07 | 4 | -7/+8 |
| | | |||||
* | | Frontends, VideoCore: Move glad initialisation to the frontend | Emmanuel Gil Peyrot | 2016-05-06 | 1 | -6/+0 |
| | | | | | | | | | | | | | | | | | | | | On SDL2 this allows it to use SDL_GL_GetProcAddress() instead of the default function loader, and fixes a crash when using apitrace with an EGL context. On Qt we will need to migrate from QGLWidget to QOpenGLWidget and QOpenGLContext before we can use gladLoadGLLoader() instead of gladLoadGL(), since the former doesn’t expose a function loader. | ||||
* | | Pica: Rename VertexLoaded breakpoint to VertexShaderInvocation | Jannik Vogel | 2016-05-04 | 2 | -7/+5 |
|/ | |||||
* | OpenGL: Don't copy const_color (Reverts #1745) | Jannik Vogel | 2016-05-03 | 1 | -2/+3 |
| | |||||
* | Pica: Replace logic in shader.cpp with loop | Jannik Vogel | 2016-05-03 | 1 | -34/+4 |
| | |||||
* | Merge pull request #1741 from linkmauve/iwyu-video_core | bunnei | 2016-05-01 | 34 | -79/+212 |
|\ | | | | | Fix video_core includes (and dependencies) using include-what-you-use | ||||
| * | VideoCore: Run include-what-you-use and fix most includes. | Emmanuel Gil Peyrot | 2016-04-30 | 34 | -79/+212 |
| | | |||||
* | | OpenGL: Copy TevStageConfig using a loop. Fixes bug: const_color not copied | Jannik Vogel | 2016-05-01 | 1 | -30/+11 |
| | | |||||
* | | OpenGL: border_color was never set. Fixed. (#1740) | Jannik Vogel | 2016-04-30 | 1 | -0/+1 |
|/ | |||||
* | Remove TGA dumper | Jannik Vogel | 2016-04-30 | 3 | -62/+0 |
| | |||||
* | Merge pull request #1730 from hrydgard/vertex-loader | bunnei | 2016-04-29 | 6 | -121/+210 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove late accesses to attribute_config * Refactor: Extract VertexLoader from command_processor.cpp. Preparation for a similar concept to Dolphin or PPSSPP. These can be JIT-ed and cached. * Move "&" to their proper place, add missing includes and make some properly relative. * Don't keep base_address in the loader, it doesn't belong there (with it, the loader can't be cached). * Optimize the vertex loader, nearly doubling its speed. * Debugger fix * Move and rename the MemoryAccesses class to MemoryAccessTracker. | ||||
| * | Move and rename the MemoryAccesses class to MemoryAccessTracker. | Henrik Rydgard | 2016-04-29 | 4 | -32/+35 |
| | | |||||
| * | Debugger fix | Henrik Rydgard | 2016-04-28 | 1 | -2/+2 |
| | | |||||
| * | Optimize the vertex loader, nearly doubling its speed. | Henrik Rydgard | 2016-04-28 | 2 | -32/+54 |
| | | |||||
| * | Don't keep base_address in the loader, it doesn't belong there (with it, the loader can't be cached). | Henrik Rydgard | 2016-04-28 | 3 | -11/+10 |
| | | |||||
| * | Move "&" to their proper place, add missing includes and make some properly relative. | Henrik Rydgard | 2016-04-28 | 2 | -8/+11 |
| | | |||||
| * | Refactor: Extract VertexLoader from command_processor.cpp. | Henrik Rydgard | 2016-04-28 | 5 | -125/+185 |
| | | | | | | | | Preparation for a similar concept to Dolphin or PPSSPP. These can be JIT-ed and cached. | ||||
| * | Remove late accesses to attribute_config | Henrik Rydgard | 2016-04-28 | 1 | -5/+7 |
| | | |||||
* | | Common: Remove section measurement from profiler (#1731) | Yuri Kunde Schlesner | 2016-04-29 | 4 | -11/+0 |
| | | | | | | | | This has been entirely superseded by MicroProfile. The rest of the code can go when a simpler frametime/FPS meter is added to the GUI. | ||||
* | | Merge pull request #1710 from hrydgard/optimize-event-breakpoints | bunnei | 2016-04-26 | 2 | -7/+14 |
|\ \ | | | | | | | Replace std::map with std::array for graphics event breakpoints | ||||
| * | | Replace std::map with std::array for graphics event breakpoints, and allow the compiler to inline. Saves 1%+ in vertex heavy situations. | Henrik Rydgard | 2016-04-24 | 2 | -7/+14 |
| |/ | |||||
* | | shader: Shader size is long uint, not uint. | Sam Spilsbury | 2016-04-24 | 1 | -1/+1 |
| | | |||||
* | | shader: Handle non-CALL opcodes with a break | Sam Spilsbury | 2016-04-24 | 1 | -0/+2 |
| | | |||||
* | | shader: Format string must be provided inline and not as a variable | Sam Spilsbury | 2016-04-24 | 1 | -1/+1 |
|/ | |||||
* | pica: Handle default lighting case | Sam Spilsbury | 2016-04-23 | 1 | -1/+6 |
| | |||||
* | HWRasterizer: reorder declarations to match defs | tfarley | 2016-04-22 | 1 | -9/+9 |
| | |||||
* | HWRasterizer: sync specular uniform for new shaders | tfarley | 2016-04-22 | 1 | -0/+2 |
| | |||||
* | Merge pull request #1436 from tfarley/hw-tex-forwarding | bunnei | 2016-04-22 | 15 | -759/+1373 |
|\ | | | | | Hardware Renderer Texture Forwarding | ||||
| * | HWRasterizer: Texture forwarding | tfarley | 2016-04-21 | 13 | -759/+1371 |
| | | |||||
| * | Config: Add scaled resolution option | tfarley | 2016-04-21 | 2 | -0/+2 |
| | | |||||
* | | Merge pull request #1655 from JayFoxRox/hw-dot3 | bunnei | 2016-04-21 | 1 | -0/+3 |
|\ \ | |/ |/| | OpenGL: Implement color combiner Operation::Dot3_RGB | ||||
| * | OpenGL: Implement color combiner Operation::Dot3_RGB | Jannik Vogel | 2016-04-10 | 1 | -0/+3 |
| | | |||||
* | | Merge pull request #1625 from JayFoxRox/sw-blend-func | bunnei | 2016-04-18 | 1 | -57/+42 |
|\ \ | | | | | | | Rasterizer: Allow all blend factors for alpha blend-func | ||||
| * | | Rasterizer: Allow all blend factors for alpha blend-func | Jannik Vogel | 2016-04-17 | 1 | -57/+42 |
| | | | |||||
* | | | debug_utils: use std::make_unique for initializing PicaTrace | Lioncash | 2016-04-15 | 1 | -1/+1 |
| | | | |||||
* | | | Merge pull request #1665 from lioncash/file | bunnei | 2016-04-14 | 1 | -1/+16 |
|\ \ \ | | | | | | | | | IOFile: Minor API changes | ||||
| * | | | file_util: Don't expose IOFile internals through the API | Lioncash | 2016-04-14 | 1 | -1/+16 |
| |/ / | |||||
* | | | shader_jit_x64: Rename RuntimeAssert to Compile_Assert. | bunnei | 2016-04-14 | 2 | -5/+5 |
| | | | |||||
* | | | shader_jit_x64.cpp: Rename JitCompiler to JitShader. | bunnei | 2016-04-14 | 3 | -92/+92 |
| | | | |||||
* | | | shader_jit_x64: Free memory that's no longer needed after compilation. | bunnei | 2016-04-14 | 1 | -0/+6 |
| | | | |||||
* | | | shader_jit_x64: Use a sorted vector instead of a set for keeping track of return addresses. | bunnei | 2016-04-14 | 2 | -5/+8 |
| | | | |||||
* | | | shader_jit_x64: Use CALL/RET instead of JMP for subroutines. | bunnei | 2016-04-14 | 1 | -17/+7 |
| | | | |||||
* | | | shader_jit_x64: Separate initialization and code generation for readability. | bunnei | 2016-04-14 | 1 | -9/+8 |
| | | | |||||
* | | | shader_jit_x64: Get rid of unnecessary last_program_counter variable. | bunnei | 2016-04-14 | 2 | -6/+2 |
| | | | |||||
* | | | shader_jit_x64: Execute certain asserts at runtime. | bunnei | 2016-04-14 | 2 | -5/+19 |
| | | | | | | | | | | | | - This is because we compile the full shader code space, and therefore its common to compile malformed instructions. | ||||
* | | | shader: Remove unused 'state' argument from 'Setup' function. | bunnei | 2016-04-14 | 3 | -5/+4 |
| | | | |||||
* | | | shader_jit_x64: Specify shader main offset at runtime. | bunnei | 2016-04-14 | 3 | -10/+6 |
| | | | |||||
* | | | shader_jit_x64: Allocate each program independently and persist for emu session. | bunnei | 2016-04-14 | 3 | -38/+28 |
| | | | |||||
* | | | shader_jit_x64: Rewrite flow control to support arbitrary CALL and JMP instructions. | bunnei | 2016-04-14 | 2 | -35/+119 |
| | | | |||||
* | | | shader_jit_x64: Fix strict memory aliasing issues. | bunnei | 2016-04-14 | 1 | -1/+3 |
|/ / | |||||
* / | Pica: Remove geometry dumper (PICA_DUMP_GEOMETRY) | Jannik Vogel | 2016-04-10 | 4 | -71/+0 |
|/ | |||||
* | OpenGL: Respect buffer-write allow registers | Jannik Vogel | 2016-04-08 | 1 | -6/+28 |
| | |||||
* | OpenGL: Split buffer-write mask sync into seperate functions | Jannik Vogel | 2016-04-08 | 2 | -8/+39 |
| | |||||
* | Rasterizer: Respect buffer-write allow registers | Jannik Vogel | 2016-04-08 | 2 | -4/+16 |
| | |||||
* | OpenGL: Keep stencil-test and framebuffer.depth_format in sync | Jannik Vogel | 2016-04-08 | 1 | -0/+1 |
| | |||||
* | Merge pull request #1639 from linkmauve/fix-double-framebuffer-check | bunnei | 2016-04-08 | 1 | -4/+6 |
|\ | | | | | OpenGL: Fix a double framebuffer completeness checks. | ||||
| * | OpenGL: Fix a double framebuffer completeness checks. | Emmanuel Gil Peyrot | 2016-04-03 | 1 | -4/+6 |
| | | |||||
* | | Merge pull request #1643 from MerryMage/make_unique | Mathew Maidment | 2016-04-06 | 5 | -11/+7 |
|\ \ | |/ |/| | Common: Remove Common::make_unique, use std::make_unique | ||||
| * | Common: Remove Common::make_unique, use std::make_unique | MerryMage | 2016-04-05 | 5 | -11/+7 |
| | | |||||
* | | OpenGL: Check for framebuffer completeness | Jannik Vogel | 2016-04-03 | 1 | -0/+3 |
| | | |||||
* | | Avoid warnings by casting to size_t for ARRAY_SIZE() comparisons | Jannik Vogel | 2016-04-01 | 1 | -6/+6 |
| | | |||||
* | | Pica: Improve accuracy of immediate-mode support | Yuri Kunde Schlesner | 2016-03-24 | 5 | -29/+56 |
| | | | | | | | | This partially fixes Etrian Odyssey IV. | ||||
* | | OpenGL: Don't attempt to draw empty triangle batches | Yuri Kunde Schlesner | 2016-03-24 | 1 | -0/+3 |
| | | | | | | | | | | Our code did not handle this well, causing random crashes in some situations. | ||||
* | | Merge pull request #1508 from JayFoxRox/vs-output-map | bunnei | 2016-03-22 | 2 | -7/+19 |
|\ \ | |/ |/| | Respect vs output map | ||||
| * | Respect vs output map | Jannik Vogel | 2016-03-14 | 2 | -7/+19 |
| | | |||||
* | | Merge pull request #1538 from lioncash/dot | bunnei | 2016-03-20 | 1 | -5/+3 |
|\ \ | | | | | | | shader_interpreter: use std::inner_product for the dot product | ||||
| * | | shader_interpreter: use std::inner_product for the dot product | Lioncash | 2016-03-17 | 1 | -5/+3 |
| | | | | | | | | | | | | Same thing, less code. | ||||
* | | | Merge pull request #1535 from JayFoxRox/fix-align | bunnei | 2016-03-18 | 1 | -6/+6 |
|\ \ \ | | | | | | | | | PICA: Alignment happens locally in vertex | ||||
| * | | | PICA: Alignment happens locally in vertex | Jannik Vogel | 2016-03-17 | 1 | -6/+6 |
| | | | | |||||
* | | | | video_core: Don't cast away const | Lioncash | 2016-03-17 | 3 | -18/+19 |
| |/ / |/| | | |||||
* | | | core/video_core: Make NumIds functions constexpr | Lioncash | 2016-03-17 | 1 | -1/+1 |
| | | | |||||
* | | | core/video_core: Don't cast away const in subscript operators | Lioncash | 2016-03-17 | 1 | -3/+3 |
|/ / | | | | | | | Not to say these subscript operators aren't totally ugly as is. | ||||
* | | Merge pull request #1519 from JayFoxRox/vp-offset-fix | bunnei | 2016-03-16 | 1 | -2/+2 |
|\ \ | | | | | | | PICA: Fix viewport offset | ||||
| * | | PICA: Fix viewport offset | Jannik Vogel | 2016-03-14 | 1 | -2/+2 |
| |/ | |||||
* | | Merge pull request #1503 from bunnei/clear-jit-cache | bunnei | 2016-03-16 | 3 | -7/+27 |
|\ \ | | | | | | | Clear JIT cache | ||||
| * | | shader_jit_x64: Clear cache after code space fills up. | bunnei | 2016-03-12 | 3 | -2/+19 |
| | | | |||||
| * | | shader_jit_x64: Make assert outputs more useful & cleanup formatting. | bunnei | 2016-03-12 | 1 | -4/+7 |
| | | | |||||
| * | | shader: Update log message to use proper log class. | bunnei | 2016-03-12 | 1 | -1/+1 |
| | | | |||||
* | | | PICA: Fix MAD/MADI encoding | Jannik Vogel | 2016-03-15 | 2 | -29/+33 |
| |/ |/| | |||||
* | | PICA: Align vertex attributes | Jannik Vogel | 2016-03-13 | 1 | -1/+5 |
|/ | |||||
* | Merge pull request #1475 from lioncash/align | Yuri Kunde Schlesner | 2016-03-10 | 1 | -4/+4 |
|\ | | | | | Common: Get rid of alignment macros | ||||
| * | Common: Get rid of alignment macros | Lioncash | 2016-03-09 | 1 | -4/+4 |
| | | | | | | | | | | The gl rasterizer already uses alignas, so we may as well move everything over. | ||||
* | | Merge pull request #1474 from lioncash/renderer | bunnei | 2016-03-09 | 3 | -15/+15 |
|\ \ | | | | | | | renderer_base: Minor changes | ||||
| * | | renderer_base: In-class initialize variables | Lioncash | 2016-03-09 | 1 | -5/+2 |
| | | | |||||
| * | | render_base: Clarify/normalize getter functions | Lioncash | 2016-03-09 | 1 | -2/+2 |
| | | | |||||
| * | | renderer_base: Don't directly expose the rasterizer unique_ptr | Lioncash | 2016-03-09 | 3 | -8/+11 |
| |/ | | | | | | | | | There's no reason to allow direct access to the unique_ptr instance. Only its contained pointer. | ||||
* | | Merge pull request #1344 from LittleWhite-tb/error-output | bunnei | 2016-03-09 | 5 | -8/+18 |
|\ \ | |/ |/| | Output errors in GUI | ||||
| * | Improve error report from Init() functions | LittleWhite | 2016-03-08 | 5 | -8/+18 |
| | | | | | | | | Add error popup when citra initialization failed | ||||
* | | Pica: Write depth value even when depth test is disabled | Yuri Kunde Schlesner | 2016-03-06 | 2 | -10/+12 |
|/ | | | | This has been confirmed on hardware. Fixes Etrian Odyssey IV. | ||||
* | Add immediate mode vertex submission | Dwayne Slater | 2016-03-03 | 17 | -60/+172 |
| | |||||
* | Merge pull request #1424 from MerryMage/lut_init | bunnei | 2016-02-26 | 1 | -0/+4 |
|\ | | | | | renderer_opengl: Initalise fragment shader LUT textures | ||||
| * | renderer_opengl: Initalise fragment shader LUT textures | MerryMage | 2016-02-26 | 1 | -0/+4 |
| | | |||||
* | | Merge pull request #1395 from ds84182/padding-attributes | bunnei | 2016-02-25 | 1 | -7/+17 |
|\ \ | |/ |/| | Add support for padding vertex attributes | ||||
| * | Fix out of bounds array access when loading a component >= 12 | Dwayne Slater | 2016-02-21 | 1 | -1/+4 |
| | | |||||
| * | Add support for padding vertex attributes | Dwayne Slater | 2016-02-21 | 1 | -6/+13 |
| | | |||||
* | | BitField: Make trivially copyable and remove assignment operator | MerryMage | 2016-02-12 | 2 | -6/+6 |
| | | |||||
* | | pica: Cleanup lighting register definitions and documentation. | bunnei | 2016-02-05 | 2 | -48/+51 |
| | | |||||
* | | gl_rasterizer: Use alignas(16) instead of explicit padding. | bunnei | 2016-02-05 | 1 | -13/+6 |
| | | |||||
* | | renderer_opengl: Use GLvec3/GLvec4 aliases for commonly used types. | bunnei | 2016-02-05 | 4 | -14/+18 |
| | | |||||
* | | gl_rasterizer: Fix issue with interpolation of opposite quaternions. | bunnei | 2016-02-05 | 2 | -4/+32 |
| | | |||||
* | | pica_types: Fix typo in docstring. | bunnei | 2016-02-05 | 1 | -1/+1 |
| | | |||||
* | | pica_types: Replace float24/20/16 with a template class. | bunnei | 2016-02-05 | 5 | -116/+82 |
| | | |||||
* | | command_processor: Add an assertion to ensure LUTs are not written past their boundaries. | bunnei | 2016-02-05 | 1 | -0/+3 |
| | | |||||
* | | gl_rasterizer: Remove unnecessary casts. | bunnei | 2016-02-05 | 1 | -6/+6 |
| | | |||||
* | | gl_rasterizer: Fix PicaShaderConfig on GCC. | bunnei | 2016-02-05 | 1 | -29/+27 |
| | | |||||
* | | gl_rasterizer: Initial implementation of bump mapping. | bunnei | 2016-02-05 | 3 | -5/+42 |
| | | |||||
* | | gl_shader_gen: Fix bug in LUT range (should within range [0, 255] not [0, 256]). | bunnei | 2016-02-05 | 1 | -3/+3 |
| | | |||||
* | | gl_shader_gen: Implement lighting red, green, and blue reflection. | bunnei | 2016-02-05 | 3 | -21/+77 |
| | | |||||
* | | gl_shader_gen: View should be normalized. | bunnei | 2016-02-05 | 1 | -2/+2 |
| | | |||||
* | | gl_shader_gen: Implement fragment lighting fresnel effect. | bunnei | 2016-02-05 | 3 | -9/+38 |
| | | |||||
* | | gl_shader_gen: Implement fragment lighting specular 1 component. | bunnei | 2016-02-05 | 3 | -11/+41 |
| | | |||||
* | | gl_shader_gen: Add support for D0 LUT scaling. | bunnei | 2016-02-05 | 3 | -3/+71 |
| | | |||||
* | | gl_shader_gen: Refactor lighting config to match Pica register naming. | bunnei | 2016-02-05 | 3 | -42/+50 |
| | | | | | | | | - Also implement D0 LUT enable. | ||||
* | | pica: Cleanup and add some comments to lighting registers. | bunnei | 2016-02-05 | 2 | -19/+19 |
| | | |||||
* | | gl_rasterizer: Minor naming refactor on Pica register naming. | bunnei | 2016-02-05 | 2 | -20/+23 |
| | | |||||
* | | gl_shader_gen: Reorganize and cleanup lighting code. | bunnei | 2016-02-05 | 1 | -100/+107 |
| | | | | | | | | - No functional difference. | ||||
* | | gl_shader_gen: Fix directional lights. | bunnei | 2016-02-05 | 1 | -1/+1 |
| | | |||||
* | | gl_shader_gen: Fix bug with lighting where clamp highlights was only applied to last light. | bunnei | 2016-02-05 | 1 | -6/+6 |
| | | |||||
* | | gl_shader_gen: View vector needs to be normalized when computing half angle vector. | bunnei | 2016-02-05 | 1 | -3/+4 |
| | | |||||
* | | renderer_opengl: Use textures for fragment shader LUTs instead of UBOs. | bunnei | 2016-02-05 | 5 | -27/+64 |
| | | | | | | | | | | - Gets us LUT interpolation for free. - Some older Intel GPU drivers did not support the big UBOs needed to store the LUTs. | ||||
* | | renderer_opengl: Initial implementation of basic specular lighting. | bunnei | 2016-02-05 | 4 | -13/+165 |
| | | |||||
* | | renderer_opengl: Implement HW fragment lighting distance attenuation. | bunnei | 2016-02-05 | 2 | -17/+38 |
| | | |||||
* | | renderer_opengl: Implement HW fragment lighting LUTs within our default UBO. | bunnei | 2016-02-05 | 4 | -16/+67 |
| | | |||||
* | | renderer_opengl: Implement diffuse component of HW fragment lighting. | bunnei | 2016-02-05 | 6 | -15/+270 |
| | | |||||
* | | pica: Implement decoding of basic fragment lighting components. | bunnei | 2016-02-05 | 5 | -15/+120 |
| | | | | | | | | | | | | | | - Diffuse - Distance attenuation - float16/float20 types - Vertex Shader 'view' output | ||||
* | | pica: Implement fragment lighting LUTs. | bunnei | 2016-02-05 | 2 | -0/+34 |
| | | |||||
* | | pica: Add decodings for distance attenuation and LUT registers. | bunnei | 2016-02-05 | 1 | -1/+104 |
| | | |||||
* | | pica: Add pica_types module and move float24 definition. | bunnei | 2016-02-05 | 3 | -112/+127 |
|/ | |||||
* | hwrasterizer: Use proper cached fb addr/size | tfarley | 2016-02-03 | 2 | -42/+34 |
| | |||||
* | OpenGL: Downgrade GL_DEBUG_SEVERITY_NOTIFICATION to Debug logging level | Yuri Kunde Schlesner | 2016-02-03 | 1 | -2/+0 |
| | | | | | | The nVidia driver is *extremely* spammy on this category, sending a message on every buffer or texture upload, slowing down the emulator and making the log useless. | ||||
* | Merge pull request #1367 from yuriks/jit-jmp | bunnei | 2016-01-27 | 2 | -6/+6 |
|\ | | | | | Shader JIT: Fix off-by-one error when compiling JMPs | ||||
| * | Shader JIT: Fix off-by-one error when compiling JMPs | Yuri Kunde Schlesner | 2016-01-24 | 2 | -6/+6 |
| | | | | | | | | | | | | | | There was a mistake in the JMP code which meant that one instruction at the destination would be skipped when the jump was taken. This commit also changes the meaning of the culprit parameter to make it less confusing and avoid similar mistakes in the future. | ||||
* | | Merge pull request #1369 from yuriks/jmpu-inverted | bunnei | 2016-01-26 | 2 | -2/+5 |
|\ \ | | | | | | | Shader: Implement "invert condition" feature of IFU instruction | ||||
| * | | Shader: Implement "invert condition" feature of IFU instruction | Yuri Kunde Schlesner | 2016-01-25 | 2 | -2/+5 |
| |/ | | | | | | | | | | | If the bit 0 of the JMPU instruction is set, then the jump condition will be inverted. That is, a jump will happen when the boolean is false instead of when it is true. | ||||
* / | Debugger: Use 3dbrew names for GPU registers | Yuri Kunde Schlesner | 2016-01-25 | 1 | -57/+465 |
|/ | | | | | This list was imported from the 3dbrew wiki page and is pretty much complete. | ||||
* | Merge pull request #1334 from tfarley/hw-depth-modifiers | bunnei | 2016-01-21 | 3 | -2/+24 |
|\ | | | | | hwrasterizer: Use depth offset | ||||
| * | hwrasterizer: Use depth offset | tfarley | 2016-01-21 | 3 | -2/+24 |
| | | |||||
* | | command_processor: Get rid of variable shadowing | Lioncash | 2016-01-17 | 1 | -2/+1 |
|/ | |||||
* | Merge pull request #1196 from linkmauve/khr_debug | bunnei | 2016-01-13 | 1 | -0/+57 |
|\ | | | | | Add optional GL_KHR_debug support | ||||
| * | OpenGL: Log GL_KHR_debug messages we receive | Emmanuel Gil Peyrot | 2015-10-24 | 1 | -0/+57 |
| | | | | | | | | | | This allows the driver to communicate errors, warnings and improvement suggestions about our usage of the API. | ||||
* | | video_core: Make the renderer global a unique_ptr | Lioncash | 2015-12-30 | 2 | -6/+10 |
| | | |||||
* | | swrasterizer: Add missing override specifier | Lioncash | 2015-12-30 | 1 | -1/+1 |
| | | |||||
* | | VideoCore: Sync state after changing rasterizers | Yuri Kunde Schlesner | 2015-12-21 | 1 | -0/+1 |
| | | | | | | | | | | This fixes various bugs that appear in the HW rasterizer after switching between it and the SW one during emulation. | ||||
* | | Merge pull request #1267 from yuriks/flipped-framebuffer | Yuri Kunde Schlesner | 2015-12-10 | 4 | -12/+17 |
|\ \ | | | | | | | OpenGL: Flip framebuffers during transfer rather than when rendering | ||||
| * | | OpenGL: Flip framebuffers during transfer rather than when rendering | Yuri Kunde Schlesner | 2015-12-05 | 2 | -12/+11 |
| | | | |||||
| * | | OpenGL: Add support for glFrontFace in the state tracker | Yuri Kunde Schlesner | 2015-12-05 | 2 | -0/+6 |
| | | | |||||
* | | | Merge pull request #1269 from Subv/triangle_fan | bunnei | 2015-12-08 | 1 | -5/+4 |
|\ \ \ | | | | | | | | | GPU/PrimitiveAssembler: Fixed drawing triangle fans. | ||||
| * | | | GPU/PrimitiveAssembler: Fixed drawing triangle fans. | Subv | 2015-12-06 | 1 | -5/+4 |
| |/ / | | | | | | | | | | It was skipping the second vertex assignment and using uninitialized garbage when assembling the corresponding triangle. | ||||
* | | | VideoCore: Unify interface to OpenGL and SW rasterizers | Yuri Kunde Schlesner | 2015-12-08 | 13 | -67/+105 |
| | | | | | | | | | | | | | | | | | | This removes explicit checks sprinkled all over the codebase to instead just have the SW rasterizer expose an implementation with no-ops for most operations. | ||||
* | | | VideoCore: Rename HWRasterizer methods to be less confusing | Yuri Kunde Schlesner | 2015-12-07 | 4 | -12/+12 |
| | | | |||||
* | | | OpenGL: Rename cache functions to better match what they actually do | Yuri Kunde Schlesner | 2015-12-07 | 3 | -12/+11 |
|/ / | |||||
* | | PICA: Properly emulate 1-stage delay in the combiner buffer | Yuri Kunde Schlesner | 2015-12-01 | 2 | -12/+19 |
| | | | | | | | | | | | | | | | | | | This was discovered and verified by @fincs. The tev combiner buffer actually lags behind by one stage, meaning stage 1 reads the initial color, stage 2 reads stage 0's output, and so on. Fixes character portraits in Fire Emblem: Awakening and world textures in Zelda: ALBW. Closes #1140. | ||||
* | | renderer_opengl: Fix uniform issues introduced with kemenaran/avoid-explicit-uniform-location. | bunnei | 2015-11-26 | 2 | -6/+8 |
| | | |||||
* | | Use regular uniform location | Pierre de La Morinerie | 2015-11-25 | 3 | -15/+5 |
| | | | | | | | | | | | | The support for GL_ARB_explicit_uniform_location is not that good (53% according to http://feedback.wildfiregames.com/report/opengl/feature/GL_ARB_explicit_uniform_location). This fix the shader compilation on Intel HD 4000 (#1222). | ||||
* | | FragShader: Use an UBO instead of several individual uniforms | Subv | 2015-11-19 | 6 | -13/+67 |
| | | |||||
* | | GPU/Loaders: Log an error when a loader tries to load from a component beyond the available ones (12). | Subv | 2015-11-10 | 1 | -0/+2 |
| | | | | | | | | Related to #1170 | ||||
* | | gl_shader_gen: Use explicit locations for vertex shader attributes. | bunnei | 2015-10-22 | 2 | -15/+9 |
| | | |||||
* | | gl_shader_gen: Optimize code for AppendAlphaTestCondition. | bunnei | 2015-10-22 | 1 | -16/+11 |
| | | | | | | | | - Also add a comment to AppendColorCombiner. | ||||
* | | gl_rasterizer: Define enum types for each vertex texcoord attribute. | bunnei | 2015-10-22 | 3 | -12/+14 |
| | | |||||
* | | gl_shader_gen: Various cleanups to shader generation. | bunnei | 2015-10-22 | 3 | -48/+52 |
| | | |||||
* | | gl_rasterizer: Use MMH3 hash for shader cache hey. | bunnei | 2015-10-22 | 4 | -83/+63 |
| | | | | | | | | - Includes a check to confirm no hash collisions. | ||||
* | | gl_shader_gen: Require explicit uniform locations. | bunnei | 2015-10-22 | 3 | -56/+34 |
| | | | | | | | | - Fixes uniform issue on AMD. | ||||
* | | gl_shader_gen: Rename 'o' to 'attr' in vertex/fragment shaders. | bunnei | 2015-10-22 | 1 | -11/+11 |
| | | |||||
* | | gl_shader_gen: AppendAlphaModifier default should be 0.0, not vec4(0.0). | bunnei | 2015-10-22 | 1 | -1/+1 |
| | | |||||
* | | gl_shader_gen: Fix bug where TEV stage outputs should be clamped. | bunnei | 2015-10-22 | 1 | -3/+3 |
| | | |||||
* | | gl_rasterizer: Add documentation to ShaderCacheKey. | bunnei | 2015-10-22 | 1 | -0/+16 |
| | | |||||
* | | gl_shader_gen: Add additional function documentation. | bunnei | 2015-10-22 | 2 | -0/+18 |
| | | |||||
* | | gl_shader_util: Cleanup header file + add docstring. | bunnei | 2015-10-22 | 1 | -1/+7 |
| | | |||||
* | | gl_shader_gen: Various cleanups + moved TEV stage generation to its own function. | bunnei | 2015-10-22 | 1 | -161/+170 |
| | | |||||
* | | renderer_opengl: Refactor shader generation/caching to be more organized + various cleanups. | bunnei | 2015-10-22 | 10 | -788/+509 |
| | | |||||
* | | gl_rasterizer: Move logic for creating ShaderCacheKey to a static function. | bunnei | 2015-10-22 | 3 | -22/+50 |
| | | |||||
* | | gl_shader_util: Use vec3 constants for AppendColorCombiner. | bunnei | 2015-10-22 | 1 | -6/+6 |
| | | |||||
* | | gl_rasterizer: Fix typo in uploading TEV const color uniforms. | bunnei | 2015-10-22 | 1 | -5/+5 |
| | | |||||
* | | gl_shader_util: Fix precision bug with alpha testing. | bunnei | 2015-10-22 | 2 | -9/+9 |
| | | | | | | | | - Alpha testing is not done with float32 precision, this makes the HW renderer match the SW renderer. | ||||
* | | Initial implementation of fragment shader generation with caching. | Subv | 2015-10-22 | 7 | -261/+568 |
| | | |||||
* | | CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls. | Emmanuel Gil Peyrot | 2015-10-09 | 2 | -7/+7 |
|/ | | | | The LOG_* function itself already appends one. | ||||
* | Silence -Wsign-compare warnings. | Rohit Nirmal | 2015-10-07 | 1 | -3/+3 |
| | |||||
* | fix some xcode 7.0 warnings | Martin Lindhe | 2015-09-29 | 3 | -2/+4 |
| | |||||
* | general: Silence some warnings when using clang | Lioncash | 2015-09-16 | 3 | -7/+7 |
| | |||||
* | video_core: Reorganize headers | Lioncash | 2015-09-11 | 19 | -62/+56 |
| | |||||
* | video_core: Remove unnecessary includes from headers | Lioncash | 2015-09-11 | 5 | -13/+3 |
| | |||||
* | Merge pull request #1133 from lioncash/emplace-back | bunnei | 2015-09-10 | 1 | -3/+3 |
|\ | | | | | gl_rasterizer: Replace push_back calls with emplace_back in AddTriangle | ||||
| * | gl_rasterizer: Replace push_back calls with emplace_back in AddTriangle | Lioncash | 2015-09-10 | 1 | -3/+3 |
| | | |||||
* | | Merge pull request #1136 from lioncash/proto | bunnei | 2015-09-10 | 1 | -3/+0 |
|\ \ | | | | | | | renderer_opengl: Remove unimplemented function declaration | ||||
| * | | renderer_opengl: Remove unimplemented function declaration | Lioncash | 2015-09-10 | 1 | -3/+0 |
| |/ | |||||
* / | video_core: Remove unused variables | Lioncash | 2015-09-10 | 3 | -4/+0 |
|/ | |||||
* | Shader JIT: Use SCALE constant from emitter | aroulin | 2015-09-07 | 1 | -4/+4 |
| | |||||
* | Shader: Fix size_t to int casts of register offsets | aroulin | 2015-09-07 | 2 | -15/+21 |
| | |||||
* | OpenGL: Use Sampler Objects to decouple sampler config from textures | Yuri Kunde Schlesner | 2015-09-03 | 4 | -21/+76 |
| | | | | Fixes #978 | ||||
* | OpenGL: Remove ugly and endian-unsafe color pointer casts | Yuri Kunde Schlesner | 2015-09-03 | 4 | -9/+13 |
| | |||||
* | OpenGL: Add support for Sampler Objects to state tracker | Yuri Kunde Schlesner | 2015-09-03 | 3 | -4/+42 |
| | |||||
* | Merge pull request #1087 from yuriks/opengl-glad | Yuri Kunde Schlesner | 2015-09-03 | 11 | -2812/+12 |
|\ | | | | | Replace the previous OpenGL loader with a glad-generated 3.3 one | ||||
| * | Replace the previous OpenGL loader with a glad-generated 3.3 one | Yuri Kunde Schlesner | 2015-08-30 | 11 | -2812/+12 |
| | | | | | | | | | | | | The main advantage of switching to glad from glLoadGen is that, apart from being actively maintained, it supports a customizable entrypoint loader function, which makes it possible to also support OpenGL ES. | ||||
* | | Merge pull request #1088 from aroulin/x64-emitter-abi-call | bunnei | 2015-09-02 | 2 | -28/+18 |
|\ \ | | | | | | | x64: Proper stack alignment in shader JIT function calls | ||||
| * | | x64: Proper stack alignment in shader JIT function calls | aroulin | 2015-09-01 | 2 | -28/+18 |
| | | | | | | | | | | | | | | | Import Dolphin stack handling and register saving routines Also removes the x86 parts from abi files | ||||
* | | | video_core: Fix format specifiers warnings | aroulin | 2015-09-02 | 2 | -2/+3 |
|/ / | |||||
* | | Merge pull request #1092 from Subv/vertex_offset | Tony Wasserka | 2015-08-31 | 2 | -1/+7 |
|\ \ | | | | | | | Pica: Add the vertex_offset register to the Pica registers map. | ||||
| * | | Pica: Added the primitive_restart register (0x25f) to the registers map. | Subv | 2015-08-31 | 2 | -1/+5 |
| | | | |||||
| * | | Pica: Add the vertex_offset register to the Pica registers map. | Subv | 2015-08-31 | 2 | -0/+2 |
| | | | |||||
* | | | Shader JIT: Fix SGE/SGEI NaN behavior | aroulin | 2015-08-31 | 1 | -3/+3 |
|/ / | | | | | | | | | SGE was incorrectly emulated w.r.t. NaN behavior as the CMPSS SSE instruction was used with NLT | ||||
* | | Merge pull request #1059 from Subv/vertex_offset | bunnei | 2015-08-30 | 2 | -2/+8 |
|\ \ | |/ |/| | GPU: Implemented register 0x22A PICA_REG_DRAW_VERTEX_OFFSET | ||||
| * | GPU: Implemented register 0x22A. | Subv | 2015-08-30 | 2 | -2/+8 |
| | | | | | | | | | | | | This is the equivalent of the "first" parameter in glDrawArrays, it tells the GPU the vertex index at which to start rendering. Register 0x22A doesn't affect indexed rendering. | ||||
* | | Merge pull request #1049 from Subv/stencil | bunnei | 2015-08-30 | 6 | -28/+111 |
|\ \ | | | | | | | Rasterizer: Corrected the stencil implementation. | ||||
| * | | HWRenderer: Added a workaround for the Intel Windows driver bug that causes glTexSubImage2D to not change the stencil buffer. | Subv | 2015-08-24 | 1 | -2/+9 |
| | | | | | | | | | | | | Reported here https://communities.intel.com/message/324464 | ||||
| * | | HWRasterizer: Implemented stencil ops 6 and 7. | Subv | 2015-08-21 | 1 | -1/+3 |
| | | | |||||
| * | | SWRasterizer: Implemented stencil ops 6 and 7. | Subv | 2015-08-21 | 2 | -6/+14 |
| | | | | | | | | | | | | IncrementWrap and DecrementWrap, verified with hwtests. | ||||
| * | | HWRasterizer: Implemented stencil op 1 (GL_ZERO) | Subv | 2015-08-21 | 1 | -1/+1 |
| | | | |||||
| * | | SWRasterizer: Implemented stencil action 1 (GL_ZERO). | Subv | 2015-08-21 | 2 | -1/+4 |
| | | | | | | | | | | | | Verified with hwtests. | ||||
| * | | SWRasterizer: Removed a todo. Verified with hwtests. | Subv | 2015-08-21 | 1 | -1/+0 |
| | | | |||||
| * | | SWRenderer: The stencil depth_pass action is executed even if depth testing is disabled. | Subv | 2015-08-21 | 1 | -7/+5 |
| | | | | | | | | | | | | The HW renderer already did this. | ||||
| * | | Rasterizer: Abstract duplicated stencil code into a lambda. | Subv | 2015-08-21 | 1 | -6/+9 |
| | | | |||||
| * | | GLRasterizer: Implemented stencil testing in the hw renderer. | Subv | 2015-08-20 | 4 | -2/+44 |
| | | | |||||
| * | | GPU/Rasterizer: Corrected the stencil implementation. | Subv | 2015-08-20 | 2 | -18/+39 |
| |/ | | | | | | | Verified the behavior with hardware tests. | ||||
* | | Merge pull request #1065 from yuriks/shader-fp | Yuri Kunde Schlesner | 2015-08-28 | 4 | -57/+100 |
|\ \ | | | | | | | Shader FP compliance fixes | ||||
| * | | fixup! Shaders: Fix multiplications between 0.0 and inf | Yuri Kunde Schlesner | 2015-08-24 | 1 | -4/+4 |
| | | | |||||
| * | | Shader JIT: Tiny micro-optimization in DPH | Yuri Kunde Schlesner | 2015-08-24 | 1 | -4/+4 |
| | | | |||||
| * | | Shaders: Fix multiplications between 0.0 and inf | Yuri Kunde Schlesner | 2015-08-24 | 3 | -40/+58 |
| | | | | | | | | | | | | | | | | | | | | | | | | The PICA200 semantics for multiplication are so that when multiplying inf by exactly 0.0, the result is 0.0, instead of NaN, as defined by IEEE. This is relied upon by games. Fixes #1024 (missing OoT interface items) | ||||
| * | | Shaders: Explicitly conform to PICA semantics in MAX/MIN | Yuri Kunde Schlesner | 2015-08-24 | 2 | -2/+10 |
| | | | |||||
| * | | Shader JIT: Add name to second scratch register (XMM4) | Yuri Kunde Schlesner | 2015-08-24 | 1 | -3/+5 |
| | | | |||||
| * | | Shader JIT: Fix CMP NaN behavior to match hardware | Yuri Kunde Schlesner | 2015-08-24 | 1 | -8/+23 |
| | | | |||||
* | | | gl_rasterizer_cache: Detect and ignore unnecessary texture flushes. | bunnei | 2015-08-28 | 3 | -8/+18 |
| | | | |||||
* | | | Shader JIT: Fix float to integer rounding in MOVA | aroulin | 2015-08-27 | 1 | -2/+2 |
| | | | | | | | | | | | | MOVA converts new address register values from floats to integers using truncation | ||||
* | | | Shader JIT: ifdef out reference to ifdef'd out shader_map | archshift | 2015-08-27 | 1 | -0/+2 |
| | | | | | | | | | | | | | | | shader_map was only defined on x86 architectures, but was cleared on shutdown with no ifdef protection. Ifdef this out so non-x86 architectures can be built. | ||||
* | | | Integrate the MicroProfile profiling library | Yuri Kunde Schlesner | 2015-08-25 | 5 | -0/+25 |
| | | | | | | | | | | | | | | | This brings goodies such as a configurable user interface and multi-threaded timeline view. | ||||
* | | | Merge pull request #1063 from Subv/hw_renderer_debug_fb | bunnei | 2015-08-24 | 1 | -2/+6 |
|\ \ \ | | | | | | | | | HWRenderer: Only reload the framebuffer from gpu memory if the hw renderer is in use during a breakpoint | ||||
| * | | | HWRenderer: Only reload the framebuffer from gpu memory if the hw renderer is in use during a breakpoint. | Subv | 2015-08-23 | 1 | -2/+6 |
| | |/ | |/| | |||||
* | | | shader_jit: Replace two MDisp usages with MatR | Lioncash | 2015-08-24 | 1 | -2/+2 |
| |/ |/| | |||||
* | | Merge pull request #1062 from aroulin/shader-rcp-rsq | bunnei | 2015-08-23 | 2 | -10/+10 |
|\ \ | | | | | | | Shader: RCP and RSQ computes only the 1st component | ||||
| * | | Shader: Use std::sqrt for float instead of sqrt | aroulin | 2015-08-23 | 1 | -1/+1 |
| | | | |||||
| * | | Shader: RCP and RSQ computes only the 1st component | aroulin | 2015-08-23 | 2 | -10/+10 |
| | | | |||||
* | | | Shader: implement DPH/DPHI in JIT | aroulin | 2015-08-22 | 2 | -2/+36 |
| | | | |||||
* | | | Shader: implement DPH/DPHI in interpreter | aroulin | 2015-08-22 | 1 | -1/+8 |
|/ / | | | | | | | | | Tests revealed that the component with w=1 is SRC1 and not SRC2, it is now fixed on 3dbrew. | ||||
* | | Shader: implement SGE, SGEI and SLT in JIT | aroulin | 2015-08-19 | 2 | -15/+36 |
| | | |||||
* | | Shader: implement SGE, SGEI in interpreter | aroulin | 2015-08-19 | 1 | -0/+14 |
| | | |||||
* | | Merge pull request #1047 from aroulin/shader-ex2-lg2 | bunnei | 2015-08-19 | 2 | -0/+33 |
|\ \ | | | | | | | Shader: Save caller-saved registers in JIT before a CALL | ||||
| * | | Shader: Save caller-saved registers in JIT before a CALL | aroulin | 2015-08-19 | 2 | -0/+33 |
| | | | |||||
* | | | Merge pull request #1037 from aroulin/shader-ex2-lg2 | bunnei | 2015-08-19 | 3 | -2/+58 |
|\| | | |/ |/| | Shader: Implement EX2 and LG2 in interpreter/JIT | ||||
| * | Shader: implement EX2 and LG2 in JIT | aroulin | 2015-08-17 | 2 | -2/+22 |
| | | |||||
| * | Shader: implement EX2 and LG2 in interpreter | aroulin | 2015-08-16 | 1 | -0/+36 |
| | | |||||
* | | Merge pull request #1034 from yuriks/rg8-textures | bunnei | 2015-08-17 | 2 | -1/+8 |
|\ \ | | | | | | | videocore: Added RG8 texture support | ||||
| * | | videocore: Added RG8 texture support | Patrick Martin | 2015-08-16 | 2 | -1/+8 |
| | | | |||||
* | | | Fix Linux GCC 4.9 build (complaining about undeclared memset) | LittleWhite | 2015-08-16 | 1 | -1/+2 |
| |/ |/| | |||||
* | | Build fix for Debug configurations. | Tony Wasserka | 2015-08-16 | 1 | -1/+1 |
| | | |||||
* | | Merge pull request #997 from Lectem/cmdlist_full_debug | Tony Wasserka | 2015-08-16 | 3 | -31/+29 |
|\ \ | | | | | | | citra-qt: Improve pica command list widget (add mask, fix some issues) | ||||
| * | | citra-qt/debug_utils: Use lock_guard everywhere | Lectem | 2015-07-26 | 1 | -6/+5 |
| | | | | | | | | | | | | | | | unique_lock were being used as lock_guards. Also replaced manual lock/unlock by lock_guard for harmonization. | ||||
| * | | citra-qt/command list: Add mask column | Lectem | 2015-07-26 | 3 | -25/+24 |
| | | | |||||
* | | | Introduce a shader tracer to allow inspection of input/output values for each processed instruction. | Tony Wasserka | 2015-08-16 | 8 | -41/+326 |
| | | | |||||
* | | | Pica/DebugUtils: Include uniform information into shader dumps. | Tony Wasserka | 2015-08-16 | 2 | -11/+51 |
| | | | |||||
* | | | citra-qt: Improve shader debugger. | Tony Wasserka | 2015-08-16 | 4 | -13/+28 |
| |/ |/| | | | | | Now supports dumping the current shader and recognizes a larger number of output semantics. | ||||
* | | Shader: Use a POD struct for registers. | bunnei | 2015-08-16 | 5 | -40/+43 |
| | | |||||
* | | Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64. | bunnei | 2015-08-16 | 2 | -7/+6 |
| | | |||||
* | | Common: Cleanup CPU capability detection code. | bunnei | 2015-08-16 | 1 | -5/+5 |
| | | |||||
* | | Common: Move cpu_detect to x64 directory. | bunnei | 2015-08-16 | 1 | -2/+1 |
| | | |||||
* | | x64: Refactor to remove fake interfaces and general cleanups. | bunnei | 2015-08-16 | 6 | -150/+26 |
| | | |||||
* | | JIT: Support negative address offsets. | bunnei | 2015-08-16 | 1 | -26/+25 |
| | | |||||
* | | Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders. | bunnei | 2015-08-16 | 10 | -3/+940 |
| | | | | | | | | | | - Config: Add an option for selecting to use shader JIT or interpreter. - Qt: Add a menu option for enabling/disabling the shader JIT. | ||||
* | | Common: Added MurmurHash3 hash function for general-purpose use. | bunnei | 2015-08-15 | 1 | -1/+1 |
| | | |||||
* | | Shader: Define a common interface for running vertex shader programs. | bunnei | 2015-08-15 | 7 | -186/+289 |
| | | |||||
* | | Shader: Move shader code to its own subdirectory, "shader". | bunnei | 2015-08-15 | 9 | -12/+12 |
| | | |||||
* | | GPU: Refactor "VertexShader" namespace to "Shader". | bunnei | 2015-08-15 | 13 | -50/+48 |
| | | | | | | | | - Also renames "vertex_shader.*" to "shader_interpreter.*" | ||||
* | | Merge pull request #893 from linkmauve/remove-uint._t-int._t | bunnei | 2015-08-11 | 1 | -1/+2 |
|\ \ | | | | | | | Replace standard uint*_t and int*_t with CommonTypes’ u* and s* types | ||||
| * | | ARM Core, Video Core, CitraQt, Citrace: Use CommonTypes types instead of the standard u?int*_t types. | Emmanuel Gil Peyrot | 2015-08-11 | 1 | -1/+2 |
| | | | |||||
* | | | OpenGL: Fix state tracking in situations with reused object handles | Yuri Kunde Schlesner | 2015-08-06 | 4 | -0/+45 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | | | OpenGL: Remove redundant texture.enable_2d field from OpenGLState | Yuri Kunde Schlesner | 2015-08-06 | 4 | -26/+3 |
|/ / | | | | | | | | | All uses of this field where it's false can just set the texture id to 0 instead. | ||||
* | | Videocore: Implement simple vertex caching | Yuri Kunde Schlesner | 2015-08-05 | 1 | -62/+89 |
| | | | | | | | | | | | | 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. | ||||
* | | Merge pull request #1006 from yuriks/fb-commit-profile | bunnei | 2015-07-30 | 1 | -0/+7 |
|\ \ | | | | | | | OpenGL: Add a profiler category measuring framebuffer readback | ||||
| * | | OpenGL: Add a profiler category measuring framebuffer readback | Yuri Kunde Schlesner | 2015-07-28 | 1 | -0/+7 |
| | | | |||||
* | | | Merge pull request #963 from yuriks/gpu-fixes | bunnei | 2015-07-29 | 2 | -42/+44 |
|\ \ \ | |/ / |/| | | Misc. GPU vertex loading fixes | ||||
| * | | VideoCore: Fix values of unset components in input attribute arrays | Yuri Kunde Schlesner | 2015-07-23 | 1 | -42/+38 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
| * | | VideoCore: Saturate vertex colors before interpolating | Yuri Kunde Schlesner | 2015-07-23 | 1 | -0/+6 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | | | Merge pull request #991 from yuriks/globjects | bunnei | 2015-07-26 | 3 | -143/+79 |
|\ \ \ | | | | | | | | | OpenGL: Make OpenGL object resource wrappers fully inline | ||||
| * | | | OpenGL: Make OpenGL object resource wrappers fully inline | Yuri Kunde Schlesner | 2015-07-26 | 3 | -143/+79 |
| | | | | | | | | | | | | | | | | | | | | The functions are so simple that having them separate only bloats the code and hinders optimization. | ||||
* | | | | Merge pull request #992 from yuriks/hot-path-debug | bunnei | 2015-07-26 | 5 | -13/+18 |
|\ \ \ \ | | | | | | | | | | | VideoCore: #ifdef out some debugging routines | ||||
| * | | | | VideoCore: #ifdef out some debugging routines | Yuri Kunde Schlesner | 2015-07-26 | 5 | -13/+18 |
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | | | | Merge pull request #987 from yuriks/regnames | Tony Wasserka | 2015-07-26 | 2 | -65/+72 |
|\ \ \ \ | |_|_|/ |/| | | | Videocore: Don't reinitialize register name map on every query. | ||||
| * | | | Videocore: Don't reinitialize register name map on every query | Yuri Kunde Schlesner | 2015-07-26 | 2 | -65/+72 |
| |/ / | | | | | | | | | | This greatly speeds up the command list debug widget. | ||||
* | | | Videocore: Simplify variables in vertex shader interpreter | Yuri Kunde Schlesner | 2015-07-26 | 1 | -24/+21 |
| | | | | | | | | | | | | Simplifies the code and gives a tiny speed-up. | ||||
* | | | Videocore: Replace std::stack in shader interpreter with static_vector | Yuri Kunde Schlesner | 2015-07-26 | 1 | -6/+6 |
|/ / | | | | | | | Shaves off 1/3rd of the vertex shader time in Fire Emblem | ||||
* | | Address error that remained in last merge | Yuri Kunde Schlesner | 2015-07-25 | 1 | -1/+1 |
| | | |||||
* | | Merge pull request #892 from zawata/another-warning-fixes | Yuri Kunde Schlesner | 2015-07-25 | 3 | -18/+18 |
|\ \ | | | | | | | Yet More Warning Fixes | ||||
| * | | Vertex Shader : Undo casting | zawata | 2015-07-19 | 1 | -1/+1 |
| | | | |||||
| * | | Video_Core : Type fixes | zawata | 2015-07-19 | 2 | -2/+2 |
| | | | |||||
| * | | Video_Core: Finally fix pesky warning | zawata | 2015-07-19 | 1 | -1/+1 |
| | | | |||||
| * | | Video_Core : Change Tabs to Spaces | zawata | 2015-07-19 | 1 | -0/+15 |
| | | | | | | | | | | | | | | | | | | | | | 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) | ||||
| * | | Video_Core : Fix Conversion Warnings | zawata | 2015-07-19 | 3 | -18/+3 |
| | | | |||||
* | | | Merge pull request #980 from Subv/more_breakpoints | Tony Wasserka | 2015-07-24 | 2 | -4/+7 |
|\ \ \ | |_|/ |/| | | Qt/GPU Breakpoints: Added three more breakpoint types. | ||||
| * | | Qt/GPU Breakpoints: Added three more breakpoint types: | Subv | 2015-07-23 | 2 | -4/+7 |
| | | | | | | | | | | | | | | | | | | * IncomingDisplayTransfer: Triggered just before a display transfer is performed. * GSPCommandProcessed: Triggered right after a GSP command is processed. * BufferSwapped: Triggered when the frames flip | ||||
* | | | Merge pull request #977 from yuriks/glenable-tex2d | bunnei | 2015-07-23 | 1 | -8/+5 |
|\ \ \ | | | | | | | | | GL Renderer: Remove erroneous glEnable(GL_TEXTURE_2D) calls | ||||
| * | | | GL Renderer: Remove erroneous glEnable(GL_TEXTURE_2D) calls | Yuri Kunde Schlesner | 2015-07-22 | 1 | -8/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | | | | Rasterizer/GL: Set the border color when binding a texture. | Subv | 2015-07-23 | 1 | -2/+9 |
| |/ / |/| | | |||||
* | | | Merge pull request #968 from Subv/texture_filtering | bunnei | 2015-07-22 | 4 | -3/+37 |
|\ \ \ | |/ / |/| | | GPU: Added registers for min and mag texture filters | ||||
| * | | GPU: Added registers for min and mag texture filters and implemented them in the hw renderer. | Subv | 2015-07-21 | 4 | -3/+37 |
| | | | |||||
* | | | Merge pull request #929 from neobrain/geoshader_definitions | Tony Wasserka | 2015-07-21 | 5 | -149/+162 |
|\ \ \ | |/ / |/| | | Pica/Shader: Add geometry shader definitions. | ||||
| * | | Pica/Shader: Add geometry shader definitions. | Tony Wasserka | 2015-07-15 | 5 | -149/+162 |
| | | | |||||
* | | | Merge pull request #944 from Subv/spam | bunnei | 2015-07-20 | 1 | -3/+7 |
|\ \ \ | | | | | | | | | GLRasterizer: Don't try to get a pointer to the depth buffer if it doesn't exist. | ||||
| * | | | GLRasterizer: Don't try to get a pointer to the depth buffer if it doesn't exist. | Subv | 2015-07-19 | 1 | -3/+7 |
| | | | | |||||
* | | | | Pica: Correct switched S/T texture wrapping registers | Yuri Kunde Schlesner | 2015-07-20 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | This was found and hwtested by Lectem | ||||
* | | | | Pica: Fix DP3 instruction, which wasn't assigning to the w component | Yuri Kunde Schlesner | 2015-07-20 | 1 | -1/+1 |
|/ / / | |||||
* | / | Rasterizer/Textures: Fixed a bug where the I4 format would get twice the real stride. | Subv | 2015-07-19 | 1 | -0/+1 |
| |/ |/| | | | | | Also added its name to the texture viewer widget | ||||
* | | Merge pull request #931 from neobrain/move_default_attr_handler | Tony Wasserka | 2015-07-15 | 1 | -40/+40 |
|\ \ | | | | | | | Pica/CommandProcessor: Move default attribute setup to the proper position. | ||||
| * | | Pica/CommandProcessor: Move default attribute setup to the proper position. | Tony Wasserka | 2015-07-15 | 1 | -40/+40 |
| |/ | |||||
* / | Pica/Clipper: Output proper number of triangles in debugging logs. | Tony Wasserka | 2015-07-15 | 1 | -1/+1 |
|/ | |||||
* | VideoCore: Implement the DOT3_RGB combiner | Lectem | 2015-07-14 | 2 | -1/+13 |
| | |||||
* | Pica: Implement stencil testing. | Tony Wasserka | 2015-07-13 | 2 | -12/+173 |
| | |||||
* | Clean up command_processor.cpp. | Tony Wasserka | 2015-07-13 | 1 | -22/+27 |
| | |||||
* | Add CiTrace recording support. | Tony Wasserka | 2015-07-13 | 3 | -2/+63 |
| | | | | | | 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). | ||||
* | Merge pull request #907 from Lectem/clamp_to_border | Tony Wasserka | 2015-07-12 | 3 | -13/+28 |
|\ | | | | | Add GL_CLAMP_TO_BORDER support. | ||||
| * | Added GL_CLAMP_TO_BORDER support | Lectem | 2015-07-09 | 3 | -13/+28 |
| | | |||||
* | | Core: Cleanup hw includes. | Emmanuel Gil Peyrot | 2015-06-28 | 5 | -4/+13 |
| | | |||||
* | | Core, VideoCore: Replace or fix exit() calls. | Emmanuel Gil Peyrot | 2015-06-28 | 1 | -6/+9 |
| | | |||||
* | | CitraQt: Cleanup includes. | Emmanuel Gil Peyrot | 2015-06-28 | 3 | -5/+10 |
| | | |||||
* | | Common: Cleanup emu_window includes. | Emmanuel Gil Peyrot | 2015-06-28 | 3 | -10/+8 |
| | | |||||
* | | Common: Cleanup key_map includes. | Emmanuel Gil Peyrot | 2015-06-28 | 2 | -3/+9 |
|/ | |||||
* | VideoCore: Fix floating point warning | zawata | 2015-06-27 | 1 | -1/+1 |
| | |||||
* | VideoCore: Log the GL driver’s vendor and renderer. | Emmanuel Gil Peyrot | 2015-06-16 | 1 | -0/+2 |
| | |||||
* | video_core: add extra braces around initializer | Yuri Kunde Schlesner | 2015-06-14 | 1 | -3/+3 |
| | | | | Trivial change and fixes several warnings in the clang build. | ||||
* | Renderer formatting edits | tfarley | 2015-06-09 | 2 | -26/+29 |
| | |||||
* | Render-to-texture flush, interval math fix | tfarley | 2015-06-09 | 1 | -1/+13 |
| | |||||
* | Liberal texture unbind (clout menu) | tfarley | 2015-06-09 | 2 | -4/+40 |
| | |||||
* | Depth format fix (crush3d intro/black screens) | tfarley | 2015-06-09 | 1 | -46/+46 |
| | |||||
* | Implemented glColorMask | tfarley | 2015-06-09 | 3 | -0/+24 |
| | |||||
* | Merge pull request #811 from archshift/commonify | archshift | 2015-05-31 | 9 | -865/+9 |
|\ | | | | | Commonify video_core utility headers | ||||
| * | Move video_core/color.h to common/color.h | archshift | 2015-05-30 | 5 | -218/+4 |
| | | |||||
| * | Move video_core/math.h to common/vector_math.h | archshift | 2015-05-30 | 7 | -648/+6 |
| | | | | | | | | The file only contained vector manipulation code, and such widely-useable code doesn't belong in video_core. | ||||
* | | Pica: Use zero for the SecondaryFragmentColor source. | bunnei | 2015-05-31 | 3 | -11/+21 |
| | | | | | | | | - This is a workaround until we support fragment lighting. | ||||
* | | rasterizer: Remove unnecessary 'using' for BlendEquation. | bunnei | 2015-05-31 | 1 | -2/+1 |
| | | |||||
* | | Pica: Implement LogicOp function. | bunnei | 2015-05-31 | 7 | -8/+135 |
| | | |||||
* | | rasterizer: Implement AddSigned combiner function for alpha channel. | bunnei | 2015-05-31 | 1 | -0/+7 |
| | | |||||
* | | vertex_shader: Use address offset on src2 in inverted mode. | bunnei | 2015-05-31 | 1 | -3/+3 |
| | | |||||
* | | Pica: Implement command buffer execution registers. | bunnei | 2015-05-31 | 2 | -44/+76 |
| | | |||||
* | | vertex_shader: Implement SLT/SLTI instructions. | bunnei | 2015-05-31 | 1 | -4/+10 |
| | | |||||
* | | vertex_shader: Implement MIN instruction. | bunnei | 2015-05-31 | 1 | -0/+9 |
|/ | |||||
* | Remove every trailing whitespace from the project (but externals). | Emmanuel Gil Peyrot | 2015-05-29 | 11 | -25/+25 |
| | |||||
* | gl_state: Remove unnecessary const specifier on Apply | Lioncash | 2015-05-23 | 2 | -2/+2 |
| | |||||
* | video_core/utils: Remove unused variables in GetMortonOffset | Lioncash | 2015-05-23 | 1 | -3/+0 |
| | |||||
* | Pica: Create 'State' structure and move state memory there. | bunnei | 2015-05-23 | 12 | -428/+451 |
| | |||||
* | gl_state: Fix a condition typo in Apply | Lioncash | 2015-05-23 | 1 | -1/+1 |
| | |||||
* | OpenGL renderer | tfarley | 2015-05-23 | 21 | -44/+2196 |
| | |||||
* | Merge pull request #772 from lioncash/warn | bunnei | 2015-05-18 | 1 | -1/+1 |
|\ | | | | | core/video_core: Fix a few warnings when compiling on MSVC. | ||||
| * | pica: Add the ULL specifier in IsDefaultAttribute | Lioncash | 2015-05-14 | 1 | -1/+1 |
| | | | | | | | | This is necessary otherwise there are warnings about a 32-bit result being casted to a 64-bit value. | ||||
* | | GPU/DefaultAttributes: Clear up a comment in command_processor | Subv | 2015-05-17 | 1 | -2/+2 |
| | | |||||
* | | GPU/DefaultAttributes: Let the attribute data from the loaders overwrite the default attributes, if set. | Subv | 2015-05-17 | 1 | -21/+23 |
| | | | | | | | | closes #735 | ||||
* | | Memmap: Re-organize memory function in two files | Yuri Kunde Schlesner | 2015-05-15 | 4 | -5/+3 |
|/ | | | | | | | 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. | ||||
* | GPU: Add more fine grained profiling for vertex shader and rasterization | Yuri Kunde Schlesner | 2015-05-12 | 2 | -0/+10 |
| | |||||
* | Implement I4 texture format | archshift | 2015-05-11 | 2 | -1/+12 |
| | | | | | | @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. | ||||
* | rasterizer: Implemented combiner output scaling. | bunnei | 2015-05-10 | 2 | -2/+16 |
| | |||||
* | rasterizer: Implemented AddSigned combiner op. | bunnei | 2015-05-10 | 1 | -0/+10 |
| | |||||
* | rasterizer: Fixed a depth testing bug. | bunnei | 2015-05-10 | 2 | -6/+19 |
| | |||||
* | rasterizer: Implement combiner buffer input. | bunnei | 2015-05-10 | 2 | -4/+53 |
| | |||||
* | rasterizer: Return zero'd vectors on error conditions. | bunnei | 2015-05-10 | 1 | -3/+3 |
| | |||||
* | vertex_shader: Implement FLR instruction. | bunnei | 2015-05-10 | 1 | -0/+9 |
| | |||||
* | vertex_shader: Implement MADI instruction. | bunnei | 2015-05-10 | 1 | -4/+7 |
| | | | | nihstro: Update submodule to latest upstream/master to support MADI instruction decoding. | ||||
* | Memory: Add GetPhysicalPointer helper function | Yuri Kunde Schlesner | 2015-05-09 | 3 | -11/+11 |
| | |||||
* | Memory: Support more regions in the VAddr-PAddr translation functions | Yuri Kunde Schlesner | 2015-05-09 | 3 | -18/+7 |
| | | | | | Also adds better documentation and removes the one-off reimplementation of the function in pica.h. | ||||
* | Memory: Re-organize and rename memory area address constants | Yuri Kunde Schlesner | 2015-05-09 | 1 | -1/+1 |
| | |||||
* | Merge pull request #721 from yuriks/more-cleanups | Yuri Kunde Schlesner | 2015-05-07 | 6 | -3/+8 |
|\ | | | | | More cleanups | ||||
| * | Common: Remove common.h | Yuri Kunde Schlesner | 2015-05-07 | 6 | -3/+8 |
| | | |||||
* | | Merge pull request #695 from Subv/crash_f | bunnei | 2015-05-07 | 4 | -68/+137 |
|\ \ | |/ |/| | GPU: Implemented default vertex shader attributes. | ||||
| * | GPU: Implemented default vertex shader attributes. | Subv | 2015-05-07 | 4 | -68/+137 |
| | | | | | | | | Fixes some games crashing. | ||||
* | | VideoCore: Remove a superfluous auto variable declaration in debug_utils. | Emmanuel Gil Peyrot | 2015-04-29 | 1 | -1/+1 |
| | | |||||
* | | Silence some -Wsign-compare warnings. | Rohit Nirmal | 2015-04-10 | 1 | -2/+2 |
|/ | |||||
* | Changed occurences of colour to color for consistency | Gareth Higgins | 2015-04-05 | 2 | -4/+4 |
| | |||||
* | Allow the user to set the background clear color during emulation | archshift | 2015-04-04 | 1 | -1/+2 |
| | | | | The background color can be seen at the sides of the bottom screen or when the window is wider than normal. | ||||
* | Merge pull request #652 from neobrain/shader_output_fix | bunnei | 2015-03-16 | 1 | -20/+24 |
|\ | | | | | Pica/VertexShader: Fix a bug caused due to incorrect assumptions of consecutive output register tables. | ||||
| * | Pica/VertexShader: Fix a bug caused due to incorrect assumptions of consecutive output register tables. | Tony Wasserka | 2015-03-12 | 1 | -20/+24 |
| | | | | | | | | 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. | ||||
* | | VideoCore: Add static_cast around expressions where the compiler doesn’t deduce the right type. | Emmanuel Gil Peyrot | 2015-03-16 | 2 | -4/+4 |
|/ | |||||
* | Merge pull request #629 from archshift/lcdfb | bunnei | 2015-03-10 | 2 | -11/+48 |
|\ | | | | | Implement SetLcdForceBlack and add implementation for color filling in the GPU code | ||||
| * | Added LCD registers, and implementation for color filling in OGL code. | archshift | 2015-03-09 | 2 | -11/+48 |
| | | |||||
* | | Merge pull request #643 from Subv/dem_feels | bunnei | 2015-03-10 | 3 | -13/+134 |
|\ \ | | | | | | | GPU: Implemented more depth buffer formats. | ||||
| * | | GPU: Added the stencil test structure to the Pica Regs struct. | Subv | 2015-03-10 | 3 | -50/+65 |
| | | | |||||
| * | | GPU: Implemented more depth buffer formats. | Subv | 2015-03-10 | 3 | -9/+115 |
| | | | | | | | | | | | | This fixes the horizontal lines in Picross E, Cubic Ninja, Cave Story 3D and possibly others | ||||
* | | | Pica/PrimitiveAssembly: Fix triangle strips and fans being generated with incorrect winding order. | Tony Wasserka | 2015-03-09 | 1 | -6/+3 |
| | | | |||||
* | | | Update nihstro submodule to the initial release version. | archshift | 2015-03-08 | 1 | -37/+38 |
| | | | | | | | | | | | | Includes more opcodes to implement in the future. | ||||
* | | | Merge pull request #636 from bunnei/refactor-screen-win | bunnei | 2015-03-08 | 3 | -43/+9 |
|\ \ \ | |/ / |/| | | Set framebuffer layout from EmuWindow. | ||||
| * | | Set framebuffer layout from EmuWindow. | bunnei | 2015-03-07 | 3 | -43/+9 |
| |/ | |||||
* | | GPU/Textures: Fixed ETC texture decoding. | Subv | 2015-03-07 | 1 | -1/+1 |
| | | |||||
* | | Merge pull request #538 from yuriks/perf-stat | Tony Wasserka | 2015-03-07 | 2 | -0/+18 |
|\ \ | |/ |/| | Add profiling infrastructure and widget | ||||
| * | Add profiling infrastructure and widget | Yuri Kunde Schlesner | 2015-03-02 | 2 | -0/+18 |
| | | |||||
* | | GPU: Added RGB565/RGB8 framebuffer support and various cleanups. | bunnei | 2015-03-04 | 5 | -85/+155 |
|/ | | | | | | - Centralizes color format encode/decode functions. - Fixes endianness issues. - Implements remaining framebuffer formats in the debugger. | ||||
* | Added RGBA5551 compatibility in the rasterizer | archshift | 2015-02-28 | 3 | -2/+41 |
| | | | | This allows Virtual Console games to display properly. | ||||
* | GPU: Implemented bits 3 and 1 from the display transfer flags. | Subv | 2015-02-27 | 3 | -54/+91 |
| | | | | | 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. | ||||
* | Video core: Fix A4 texture decoding | Yuri Kunde Schlesner | 2015-02-26 | 1 | -2/+2 |
| | | | | | | | | | 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. | ||||
* | Video core: Fix pixelation/blockiness in textures. | Yuri Kunde Schlesner | 2015-02-26 | 1 | -3/+3 |
| | | | | | | 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. | ||||
* | Rasterizer: Add support for RGBA4 framebuffer format. | bunnei | 2015-02-25 | 1 | -0/+21 |
| | |||||
* | Rasterize with the correct color component order. | bunnei | 2015-02-22 | 1 | -11/+24 |
| | | | | - Fixes a regression with #594. | ||||
* | Merge pull request #593 from Subv/search_problem | Tony Wasserka | 2015-02-22 | 1 | -1/+4 |
|\ | | | | | Pica/VertexShader: Fixed LOOP with more than one iteration. | ||||
| * | Pica/VertexShader: Fixed LOOP with more than one iteration. | Subv | 2015-02-21 | 1 | -1/+4 |
| | | | | | | | | | | 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. | ||||
* | | Merge pull request #588 from archshift/somebranch | bunnei | 2015-02-20 | 1 | -11/+0 |
|\ \ | |/ |/| | Sweeping cleanup of Common | ||||
| * | Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.h | archshift | 2015-02-20 | 1 | -11/+0 |
| | | |||||
* | | Rasterizer: Fixed a warning in GetWrappedTexCoord. | Subv | 2015-02-19 | 1 | -4/+4 |
|/ | | | | Redeclaring the variable inside the switch was causing weird behavior. | ||||
* | Merge pull request #580 from lioncash/emplace | bunnei | 2015-02-18 | 2 | -4/+4 |
|\ | | | | | core/video_core: Use in-place construction where possible | ||||
| * | core/video_core: Use in-place construction where possible | Lioncash | 2015-02-17 | 2 | -4/+4 |
| | | |||||
* | | Pica/Rasterizer: Replace exit() calls with UNIMPLEMENTED(). | Tony Wasserka | 2015-02-18 | 1 | -5/+5 |
| | | |||||
* | | Pica/Rasterizer: Make some local lambdas static. | Tony Wasserka | 2015-02-18 | 1 | -8/+8 |
| | | |||||
* | | Pica/BlendUnit: Implement separate color/alpha blend equations. | Tony Wasserka | 2015-02-18 | 2 | -65/+59 |
| | | |||||
* | | Pica/TextureEnvironment: Add a note. | Tony Wasserka | 2015-02-18 | 1 | -0/+4 |
| | | |||||
* | | Pica/TextureEnvironment: Treat texture combiner source 1 as the PrimaryColor. | Tony Wasserka | 2015-02-18 | 2 | -0/+4 |
| | | | | | | | | Not really sure where the difference is, but some applications seem to use this 1:1 the same way... | ||||
* | | Pica/TextureEnvironment: Add support for the MAD-like texture combiners and clean up texture environment logic. | Tony Wasserka | 2015-02-18 | 2 | -0/+28 |
| | | |||||
* | | Pica/OutputMerger: Fix flipped framebuffers. | Tony Wasserka | 2015-02-18 | 1 | -0/+10 |
| | | |||||
* | | Pica/TextureUnit: Implement mirrored repeating texture wrapping. | Tony Wasserka | 2015-02-18 | 2 | -3/+12 |
| | | |||||
* | | Pica: Fix a bug in the register definitions, relating to texture wrapping. | Tony Wasserka | 2015-02-18 | 2 | -2/+2 |
| | | |||||
* | | Pica/OutputMerger: Implement color format checking. | Tony Wasserka | 2015-02-18 | 2 | -4/+13 |
| | | |||||
* | | Pica/Rasterizer: Rasterize actual pixel centers instead of pixel corners. | Tony Wasserka | 2015-02-18 | 1 | -2/+3 |
| | | |||||
* | | Pica/Rasterizer: Fix garbage pixels at triangle borders. | Tony Wasserka | 2015-02-18 | 1 | -1/+3 |
| | | |||||
* | | Pica/Rasterizer: Clean up and fix backface culling. | Tony Wasserka | 2015-02-18 | 1 | -11/+27 |
| | | |||||
* | | Pica: Cleanup clipping code and change screenspace z to range from -1..0. | Tony Wasserka | 2015-02-18 | 2 | -53/+42 |
| | | | | | | | | 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). | ||||
* | | Pica/VertexShader: Implement the LOOP instruction. | Tony Wasserka | 2015-02-18 | 1 | -14/+36 |
| | | |||||
* | | Pica/CommandProcessor: Properly implement shader load destination offset registers. | Tony Wasserka | 2015-02-18 | 2 | -20/+10 |
| | | |||||
* | | Pica/CommandProcessor: Work around initialized vertex attributes some more. | Tony Wasserka | 2015-02-18 | 1 | -2/+8 |
| | | |||||
* | | VideoCore: Fix a typo in Vec4 MakeVec(T, Vec3<T>), where the second argument was Vec2<T> instead. | Emmanuel Gil Peyrot | 2015-02-16 | 1 | -1/+1 |
| | | |||||
* | | video_core: Implement the remaining framebuffer formats in the OpenGL renderer. | Emmanuel Gil Peyrot | 2015-02-15 | 2 | -12/+67 |
|/ | |||||
* | Merge pull request #529 from Subv/master | bunnei | 2015-02-14 | 2 | -3/+3 |
|\ | | | | | Build: Fixed some warnings | ||||
| * | Build: Fixed some warnings | Subv | 2015-02-12 | 2 | -3/+3 |
| | | |||||
* | | Fix Min and Max blend equations | Darius Goad | 2015-02-11 | 1 | -6/+8 |
|/ | |||||
* | Asserts: break/crash program, fit to style guide; log.h->assert.h | archshift | 2015-02-11 | 8 | -23/+18 |
| | | | | | | | 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. | ||||
* | Add more blend equations from 3dbrew | Darius Goad | 2015-02-10 | 2 | -2/+49 |
| | |||||
* | Rasterizer: Implement the other color and alpha modifiers. | bunnei | 2015-02-05 | 2 | -58/+69 |
| | |||||
* | VideoCore: Added same-component swizzlers to math utility functions. | bunnei | 2015-02-05 | 1 | -16/+35 |
| | |||||
* | Pica: Implement blend factors. | bunnei | 2015-01-31 | 2 | -10/+67 |
| | |||||
* | Pica: Implement color/alpha channel enable. | bunnei | 2015-01-28 | 2 | -1/+12 |
| | |||||
* | Rasterizer: Implemented alpha testing. | bunnei | 2015-01-27 | 2 | -7/+52 |
| | |||||
* | GPU: Implement the remaining depth testing functions. | bunnei | 2015-01-26 | 2 | -3/+28 |
| | |||||
* | GSP: Update framebuffer info on all interrupts | Yuri Kunde Schlesner | 2015-01-14 | 1 | -3/+1 |
| | | | | | | | | | | 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. | ||||
* | Merge pull request #473 from archshift/pp3ports | bunnei | 2015-01-14 | 2 | -14/+142 |
|\ | | | | | Pica/Rasterizer: Add ETC1 texture decompression support. | ||||
| * | Pica/Rasterizer: Add ETC1 texture decompression support. | Tony Wasserka | 2015-01-13 | 2 | -14/+142 |
| | | |||||
* | | Merge pull request #478 from archshift/pp3ports4 | bunnei | 2015-01-13 | 1 | -0/+69 |
|\ \ | | | | | | | Pica/VertexShader: Implement the MAD instruction. | ||||
| * | | Pica/VertexShader: Implement the MAD instruction. | Tony Wasserka | 2015-01-13 | 1 | -0/+69 |
| |/ | |||||
* / | Pica/VertexShader: Implement JMPC/JMPU/CALLC/CALLU. | Tony Wasserka | 2015-01-13 | 1 | -23/+52 |
|/ | |||||
* | GSP: Toggle active framebuffer each frame | bunnei | 2015-01-08 | 1 | -1/+4 |
| | |||||
* | Pica/Rasterizer: Remove some redundant casts. | Tony Wasserka | 2014-12-31 | 1 | -3/+3 |
| | |||||
* | Pica/Rasterizer: Make orient2d a free function and rename it to SignedArea. | Tony Wasserka | 2014-12-31 | 1 | -31/+38 |
| | |||||
* | Pica: Cleanup color conversion. | Tony Wasserka | 2014-12-31 | 2 | -18/+46 |
| | |||||
* | VideoCore: Remove some unused functions. | Tony Wasserka | 2014-12-31 | 1 | -26/+0 |
| | |||||
* | Pica/Rasterizer: Fix a bug related to multitexturing and texture wrapping. | Tony Wasserka | 2014-12-31 | 1 | -2/+2 |
| | |||||
* | Pica/Rasterizer: Clean up long code lines. | Tony Wasserka | 2014-12-31 | 1 | -4/+8 |
| | |||||
* | Pica/VertexShader: Coding style fixes. | Tony Wasserka | 2014-12-31 | 1 | -16/+8 |
| | |||||
* | Pica/CommandProcessor: Cleanups. | Tony Wasserka | 2014-12-31 | 1 | -3/+4 |
| | |||||
* | Pica/CommandProcessor: Workaround games not setting the input position's w component. | Tony Wasserka | 2014-12-31 | 1 | -0/+14 |
| | |||||
* | Pica/Rasterizer: Implement backface culling. | Tony Wasserka | 2014-12-31 | 2 | -10/+36 |
| | |||||
* | Pica/Rasterizer: Textures seem to be laid out flipped vertically. | Tony Wasserka | 2014-12-31 | 1 | -1/+1 |
| | | | | Not sure if this is a correct fix. Probably should instead change the decoding logic itself. | ||||
* | Pica/DebugUtils: Fix a bug in RGBA4 texture decoding. | Tony Wasserka | 2014-12-31 | 1 | -2/+2 |
| | |||||
* | Pica/Rasterizer: Implement alpha blending. | Tony Wasserka | 2014-12-31 | 1 | -0/+84 |
| | |||||
* | Pica/Rasterizer: Implement depth testing. | Tony Wasserka | 2014-12-31 | 2 | -6/+34 |
| | |||||
* | Pica/Rasterizer: Further enhance Tev support. | Tony Wasserka | 2014-12-31 | 1 | -4/+19 |
| | |||||
* | Pica: Add output merger definitions. | Tony Wasserka | 2014-12-31 | 1 | -1/+56 |
| | |||||
* | Pica: Fix A4, IA4 and IA8 texture formats. | Tony Wasserka | 2014-12-31 | 1 | -13/+7 |
| | | | | 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. | ||||
* | Pica/CommandProcessor: Add support for integer uniforms. | Tony Wasserka | 2014-12-31 | 4 | -1/+30 |
| | |||||
* | Rasterizer: Pre-divide vertex attributes by W | Yuri Kunde Schlesner | 2014-12-29 | 3 | -8/+32 |
| | | | | | Execute the division-by-W for perspective-correct interpolation of values in the clipper, moving them out of the rasterization inner loop. | ||||
* | GPU: Bitwise texture swizzling | Yuri Kunde Schlesner | 2014-12-29 | 1 | -27/+24 |
| | | | | | | Replace the loop-based texture address swizzling code by a bit-twiddling implementation, providing a very small speed up. Also simplify addressing code. | ||||
* | Rasterizer: Common sub-expression elimination | Yuri Kunde Schlesner | 2014-12-29 | 1 | -14/+17 |
| | | | | | Move the computation of some values out of loops so that they're not constantly recalculated even when they don't change. | ||||
* | Clipper: Compact buffers on each clipping pass | Yuri Kunde Schlesner | 2014-12-29 | 1 | -28/+27 |
| | | | | | | 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. | ||||
* | Clipper: Avoid dynamic allocations | Yuri Kunde Schlesner | 2014-12-29 | 1 | -10/+7 |
| | | | | | | 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. | ||||
* | Vertex Shader: Zero OutputVertex to avoid denormals | Yuri Kunde Schlesner | 2014-12-29 | 1 | -0/+4 |
| | | | | | | | | | 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. | ||||
* | GPU: Implement frameskip and remove forced framebuffer swap hack. | bunnei | 2014-12-29 | 1 | -0/+5 |
| | |||||
* | Merge pull request #327 from Apology11/master | bunnei | 2014-12-27 | 1 | -4/+4 |
|\ | | | | | Fix visual studio ambiguous symbol error | ||||
| * | Fix visual studio ambiguous symbol error | Apology11 | 2014-12-21 | 1 | -4/+4 |
| | | |||||
* | | Merge pull request #322 from chinhodado/master | bunnei | 2014-12-22 | 2 | -7/+7 |
|\ \ | | | | | | | More warning cleanups | ||||
| * | | More warning cleanups | Chin | 2014-12-21 | 2 | -7/+7 |
| |/ | |||||
* | | Merge pull request #291 from purpasmart96/license | bunnei | 2014-12-21 | 23 | -23/+23 |
|\ \ | |/ |/| | License change | ||||
| * | License change | purpasmart96 | 2014-12-21 | 23 | -23/+23 |
| | | |||||
* | | Pica/VertexShader: Promote a log message to critical status. | Tony Wasserka | 2014-12-20 | 1 | -1/+1 |
| | | |||||
* | | Pica/VertexShader: Small optimization. | Tony Wasserka | 2014-12-20 | 1 | -7/+7 |
| | | |||||
* | | Pica/VertexShader: Be robust against invalid inputs. | Tony Wasserka | 2014-12-20 | 1 | -2/+9 |
| | | | | | | | | More specifically, this also fixes crashes by Citra trying to load a src2 register even if the current instruction does not use that. | ||||
* | | Pica/VertexShader: Clarify a comment. | Tony Wasserka | 2014-12-20 | 1 | -1/+3 |
| | | |||||
* | | Pica/DebugUtils: Further cleanups to LookupTexture. | Tony Wasserka | 2014-12-20 | 1 | -7/+7 |
| | | |||||
* | | Pica/DebugUtils: Fix two warnings. | Tony Wasserka | 2014-12-20 | 1 | -2/+2 |
| | | |||||
* | | Pica/DebugUtils: Better document LookupTexture. | Tony Wasserka | 2014-12-20 | 2 | -7/+16 |
| | | |||||
* | | Pica/Rasterizer: Get rid of C-style casts. | Tony Wasserka | 2014-12-20 | 1 | -4/+4 |
| | | |||||
* | | Pica/DebugUtils: Make a number of variables static. | Tony Wasserka | 2014-12-20 | 1 | -13/+13 |
| | | | | | | | | Makes for cleaner and faster code. | ||||
* | | Pica/VertexShader: Cleanup flow control logic and implement CMP/IFU instructions. | Tony Wasserka | 2014-12-20 | 1 | -50/+56 |
| | | |||||
* | | Pica/VertexShader: Run instruction handlers according to the effective opcode. | Tony Wasserka | 2014-12-20 | 1 | -1/+1 |
| | | | | | | | | This allows for proper emulation of the different CMP/LRP/MAD instructions. | ||||
* | | Pica/VertexShader: Implement MAX instructions. | Tony Wasserka | 2014-12-20 | 1 | -0/+9 |
| | | |||||
* | | Pica: Add support for boolean uniforms. | Tony Wasserka | 2014-12-20 | 4 | -2/+21 |
| | | |||||
* | | Pica/VertexShader: Add support for MOVA, CMP and IFC. | Tony Wasserka | 2014-12-20 | 2 | -7/+138 |
| | | |||||
* | | Pica/VertexShader: Move code around a bit. | Tony Wasserka | 2014-12-20 | 1 | -42/+58 |
| | | |||||
* | | Pica/VertexShader: Some cleanups using std::array. | Tony Wasserka | 2014-12-20 | 2 | -5/+19 |
| | | |||||
* | | Pica/VertexShader: Support negating src2. | Tony Wasserka | 2014-12-20 | 2 | -3/+9 |
| | | |||||
* | | Pica/DebugUtils: Replace duplicated SHBIN structures in favor of nihstro's ones. | Tony Wasserka | 2014-12-20 | 1 | -61/+8 |
| | | |||||
* | | Pica/VertexShader: Remove (now) duplicated shader bytecode definitions in favor of nihstro's ones. | Tony Wasserka | 2014-12-20 | 2 | -222/+30 |
| | | |||||
* | | Pica/DebugUtils: Add an event triggered after loading a vertex. | Tony Wasserka | 2014-12-20 | 2 | -0/+4 |
| | | |||||
* | | Pica/PrimitiveAssembly: Implement triangle strips. | Tony Wasserka | 2014-12-20 | 2 | -8/+16 |
| | | |||||
* | | Pica/CommandProcessor: Add a safety check for invalid (?) GPU configurations. | Tony Wasserka | 2014-12-20 | 1 | -0/+7 |
| | | |||||
* | | Pica/CommandProcessor: Fix vertex decoding if multiple memory areas are accessed for different attributes. | Tony Wasserka | 2014-12-20 | 1 | -7/+8 |
| | | |||||
* | | Add support for a ridiculous number of texture formats. | Tony Wasserka | 2014-12-20 | 2 | -7/+80 |
| | | |||||
* | | Pica: Unify ugly address translation hacks. | Tony Wasserka | 2014-12-20 | 5 | -16/+25 |
| | | |||||
* | | Pica: Further improve Tev emulation. | Tony Wasserka | 2014-12-20 | 3 | -12/+51 |
| | | |||||
* | | Pica: Merge texture lookup logic for DebugUtils and Rasterizer. | Tony Wasserka | 2014-12-20 | 3 | -55/+41 |
| | | | | | | | | This effectively adds support for a lot texture formats in the rasterizer. | ||||
* | | Pica: Implement texture wrapping. | Tony Wasserka | 2014-12-20 | 2 | -2/+31 |
| | | |||||
* | | Pica/DebugUtils: Add support for RGBA8, RGBA5551, RGBA4 and A8 texture formats. | Tony Wasserka | 2014-12-20 | 2 | -3/+48 |
| | | |||||
* | | Pica: Initial support for multitexturing. | Tony Wasserka | 2014-12-20 | 3 | -24/+83 |
| | | |||||
* | | Clean up some warnings | Chin | 2014-12-20 | 1 | -2/+2 |
| | | |||||
* | | Properly erase/remove an observer | chinhodado | 2014-12-19 | 1 | -1/+1 |
|/ | |||||
* | Convert old logging calls to new logging macros | Yuri Kunde Schlesner | 2014-12-13 | 10 | -38/+50 |
| | |||||
* | Merge pull request #267 from bunnei/apt-shared-font | bunnei | 2014-12-13 | 1 | -2/+2 |
|\ | | | | | APT shared font loading | ||||
| * | MemMap: Renamed "GSP" heap to "linear", as this is not specific to GSP. | bunnei | 2014-12-12 | 1 | -2/+2 |
| | | | | | | | | - Linear simply indicates that the mapped physical address is always MappedVAddr+0x0C000000, thus this memory can be used for hardware devices' DMA (such as the GPU). | ||||
* | | Merge pull request #261 from neobrain/boost | Tony Wasserka | 2014-12-12 | 1 | -6/+10 |
|\ \ | |/ |/| | Add Boost as a submodule and add some minor cleanups using Boost.Range | ||||
| * | Integrate Boost into build system and perform a trivial cleanup in vertex_shader.cpp. | Tony Wasserka | 2014-12-07 | 1 | -6/+10 |
| | | |||||
* | | GSP: Trigger GPU interrupts at more accurate locations. | bunnei | 2014-12-10 | 2 | -1/+15 |
| | | |||||
* | | GPU: Fixed bug in command list size decoding. | bunnei | 2014-12-10 | 1 | -1/+2 |
| | | |||||
* | | Pica: Re-enable command names on MSVC. | Tony Wasserka | 2014-12-09 | 1 | -5/+0 |
| | | | | | | | | The affected code is no longer limited by compiler support on that platform. | ||||
* | | More coding style fixes. | Tony Wasserka | 2014-12-09 | 1 | -6/+12 |
| | | |||||
* | | Some code cleanup. | Tony Wasserka | 2014-12-09 | 1 | -3/+1 |
| | | |||||
* | | citra_qt: Add enhanced texture debugging widgets. | Tony Wasserka | 2014-12-09 | 3 | -1/+30 |
| | | | | | | | | Double-clicking a texture parameter command in the pica command lists will spawn these as a new tab in the pica command list dock area. | ||||
* | | citra-qt: Add texture viewer to Pica command list. | Tony Wasserka | 2014-12-09 | 2 | -21/+45 |
| | | | | | | | | The texture viewer is enabled when selecting a write command to one of the texture config registers. | ||||
* | | Pica/DebugUtils: Add breakpoint functionality. | Tony Wasserka | 2014-12-09 | 3 | -0/+189 |
| | | |||||
* | | Build fix for something which shouldn't have compiled successfully to begin with. | Tony Wasserka | 2014-12-09 | 1 | -1/+1 |
|/ | |||||
* | Change NULLs to nullptrs. | Rohit Nirmal | 2014-12-03 | 2 | -7/+7 |
| | |||||
* | Merge pull request #236 from rohit-n/sign-compare | bunnei | 2014-12-03 | 3 | -6/+6 |
|\ | | | | | Silence a few -Wsign-compare warnings. | ||||
| * | Silence a few -Wsign-compare warnings. | Rohit Nirmal | 2014-12-01 | 3 | -6/+6 |
| | | |||||
* | | Fixed viewport error caused by rounding | vaguilar | 2014-11-30 | 1 | -2/+2 |
|/ | |||||
* | Remove tabs in all files except in skyeye imports and in generated GL code | Emmanuel Gil Peyrot | 2014-11-19 | 4 | -14/+14 |
| | |||||
* | Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated | Emmanuel Gil Peyrot | 2014-11-19 | 2 | -3/+3 |
| | |||||
* | OpenGL Renderer: Cleanup viewport extent calculation. | Tony Wasserka | 2014-11-18 | 2 | -44/+29 |
| | |||||
* | Fixup EmuWindow interface and implementations thereof. | Tony Wasserka | 2014-11-18 | 1 | -3/+3 |
| | |||||
* | Viewport scaling and display density independence | Kevin Hartman | 2014-11-18 | 2 | -1/+50 |
| | | | | | The view is scaled to be as large as possible, without changing the aspect, within the bounds of the window. On "retina" displays, or other displays where window units != pixels, the view should no longer draw incorrectly. | ||||
* | Merge pull request #195 from lioncash/control | Tony Wasserka | 2014-11-16 | 1 | -1/+1 |
|\ | | | | | vertex_shader: Fix control reaches end of function warning | ||||
| * | vertex_shader: Fix control reaches end of function warning | Lioncash | 2014-11-16 | 1 | -1/+1 |
| | | |||||
* | | Fix two format strings. | Lioncash | 2014-11-14 | 1 | -2/+2 |
|/ | |||||
* | Merge pull request #162 from SeannyM/warning-fixes | bunnei | 2014-10-30 | 2 | -3/+3 |
|\ | | | | | Fix some warnings | ||||
| * | Fix some warnings | Sean | 2014-10-30 | 2 | -3/+3 |
| | | |||||
* | | Renamed souce files of services to match port names | Gareth Poole | 2014-10-29 | 1 | -1/+1 |
|/ | |||||
* | Add `override` keyword through the code. | Yuri Kunde Schlesner | 2014-10-26 | 1 | -4/+4 |
| | | | | This was automated using `clang-modernize`. | ||||
* | Only check OpenGL shader log if size is >1. | Yuri Kunde Schlesner | 2014-10-21 | 1 | -9/+6 |
| | | | | | | | | This prevents a crash when the buffer size returned by the driver is 0, in which case no space is allocated to store even the NULL byte and glGetShaderInfoLog errors out. Thanks to @Relys for the bug report. | ||||
* | Rework OpenGL renderer. | Yuri Kunde Schlesner | 2014-10-12 | 4 | -233/+193 |
| | | | | | | | | | The OpenGL renderer has been revised, with the following changes: - Initialization and rendering have been refactored to reduce the number of redundant objects used. - Framebuffer rotation is now done directly, using texture mapping. - Vertex coordinates are now given in pixels, and the projection matrix isn't hardcoded anymore. | ||||
* | OpenGL renderer: Shuffle initialization code around and rename functions. | Yuri Kunde Schlesner | 2014-10-12 | 2 | -25/+18 |
| | |||||
* | Remove virtual inheritance from RendererOpenGL | Yuri Kunde Schlesner | 2014-10-12 | 2 | -3/+3 |
| | | | | Also make destructor virtual so that instances are properly destructed. | ||||
* | Fix warnings in video_core | Lioncash | 2014-10-08 | 7 | -23/+23 |
| | |||||
* | Common: Rename the File namespace to FileUtil, to match the filename and prevent collisions. | Emmanuel Gil Peyrot | 2014-09-17 | 1 | -1/+1 |
| | |||||
* | Merge pull request #110 from lioncash/warnings | bunnei | 2014-09-15 | 1 | -1/+1 |
|\ | | | | | Core: Fix warnings in gpu.cpp | ||||
| * | Core: Fix warnings in gpu.cpp | Lioncash | 2014-09-14 | 1 | -1/+1 |
| | | |||||
* | | Merge pull request #97 from archshift/cleanup | bunnei | 2014-09-14 | 4 | -44/+29 |
|\ \ | |/ |/| | Small, general code cleanup | ||||
| * | renderer_opengl.cpp: improved alignment for readability | archshift | 2014-09-07 | 1 | -16/+16 |
| | | |||||
| * | Dead code removal: video_core.cpp, load_symbol_map.cpp | archshift | 2014-09-07 | 1 | -7/+0 |
| | | |||||
| * | utils: cleaned up DumpTGA, removing redundancies | archshift | 2014-09-07 | 2 | -21/+13 |
| | | |||||
* | | Added support for multiple input device types for KeyMap and connected Qt. | Kevin Hartman | 2014-09-12 | 1 | -0/+1 |
| | | |||||
* | | Moved common_types::Rect from common to Common namespace | archshift | 2014-09-09 | 2 | -3/+3 |
|/ | |||||
* | Remove hand-crafted Visual Studio solution. | Yuri Kunde Schlesner | 2014-09-01 | 2 | -217/+0 |
| | |||||
* | CMake cleanup | Yuri Kunde Schlesner | 2014-09-01 | 1 | -13/+26 |
| | | | | | | | | Several cleanups to the buildsystem: - Do better factoring of common libs between platforms. - Add support to building on Windows. - Remove Qt4 support. - Re-sort file lists and add missing headers. | ||||
* | Replace GLEW with a glLoadGen loader. | Yuri Kunde Schlesner | 2014-09-01 | 10 | -13/+2819 |
| | | | | | | | | | This should fix the GL loading errors that occur in some drivers due to the use of deprecated functions by GLEW. Side benefits are more accurate auto-completion (deprecated function and symbols don't exist) and faster pointer loading (less entrypoints to load). In addition it removes an external library depency, simplifying the build system a bit and eliminating one set of binary libraries for Windows. | ||||
* | Downgrade GLSL version to 1.50 (compatible with GL 3.2) | Yuri Kunde Schlesner | 2014-08-28 | 3 | -10/+15 |
| | |||||
* | VideoCore: Fixes rendering issues on Qt and corrects framebuffer output size. | bunnei | 2014-08-26 | 4 | -8/+15 |
| | |||||
* | Rewrite of OpenGL renderer, including OS X support | Kevin Hartman | 2014-08-26 | 8 | -211/+340 |
| | | | | | | Screen contents are now displayed using textured quads. This can be updated to expose an FBO once an OpenGL backend for when Pica rendering is being worked on. That FBO's texture can then be applied to the quads. Previously, FBO blitting was used in order to display screen contents, which did not work on OS X. The new textured quad approach is less of a compatibility risk. | ||||
* | Pica/Rasterizer: Clarify a TODO. | Tony Wasserka | 2014-08-25 | 1 | -1/+3 |
| | |||||
* | Pica/VertexShader: Fix a bug in the call stack handling. | Tony Wasserka | 2014-08-25 | 1 | -2/+3 |
| | |||||
* | Math: Warning fixes. | Tony Wasserka | 2014-08-25 | 1 | -14/+23 |
| | |||||
* | Pica: Consolidate the primitive assembly code in PrimitiveAssembly and GeometryDumper. | Tony Wasserka | 2014-08-25 | 5 | -46/+74 |
| | |||||
* | Pica/Rasterizer: Add texturing support. | Tony Wasserka | 2014-08-25 | 3 | -18/+69 |
| | |||||
* | Pica/DebugUtils: Add convenient tev setup printer. | Tony Wasserka | 2014-08-25 | 3 | -0/+101 |
| | |||||
* | Pica/Rasterizer: Add initial implementation of texture combiners. | Tony Wasserka | 2014-08-25 | 2 | -2/+225 |
| | |||||
* | Pica: Add support for dumping textures. | Tony Wasserka | 2014-08-25 | 3 | -1/+177 |
| | |||||
* | Pica/Math: Improved the design of the Vec2/Vec3/Vec4 classes and simplified rasterizer code accordingly. | Tony Wasserka | 2014-08-25 | 3 | -98/+133 |
| | | | | | | - Swizzlers now return const objects so that things like "first_vec4.xyz() = some_vec3" now will fail to compile (ideally we should support some vector holding references to make this actually work). - The methods "InsertBeforeX/Y/Z" and "Append" have been replaced by more versions of MakeVec, which now also supports building new vectors from vectors. - Vector library now follows C++ type promotion rules (hence, the result of Vec2<u8> with another Vec2<u8> is now a Vec2<int>). | ||||
* | Pica/VertexShader: Fix a bug in the bitfield definitions and add the "negate" field for swizzlers. | Tony Wasserka | 2014-08-25 | 2 | -14/+92 |
| | |||||
* | Pica/citra-qt: Replace command list view and command list debugging code with something more sophisticated. | Tony Wasserka | 2014-08-25 | 4 | -63/+78 |
| | |||||
* | Pica/CommandProcessor: Implement parameter masking. | Tony Wasserka | 2014-08-25 | 2 | -6/+25 |
| | |||||
* | Pica: Add debug utilities for dumping shaders. | Tony Wasserka | 2014-08-25 | 4 | -1/+227 |
| | |||||
* | Pica: Add debug utility functions for dumping geometry data. | Tony Wasserka | 2014-08-25 | 6 | -4/+123 |
| | |||||
* | Fix the threading for GL Context in Qt5. | Sacha | 2014-08-24 | 1 | -1/+0 |
| | | | | Connect the emu_thread start/finish to a moveContext slot. | ||||
* | Merge pull request #42 from archshift/glexp | bunnei | 2014-08-13 | 1 | -3/+2 |
|\ | | | | | Use glewExperimental to fix crashes with citra-glfw | ||||
| * | Use glewExperimental on Linux in order to fix GLFW-mode | archshift | 2014-08-12 | 1 | -3/+2 |
| | | |||||
* | | float24: Remove private default constructor | archshift | 2014-08-13 | 1 | -2/+0 |
|/ | | | | Fixes building with clang. | ||||
* | Pica: Add basic rasterizer. | Tony Wasserka | 2014-08-12 | 7 | -2/+260 |
| | |||||
* | Pica: Add triangle clipper. | Tony Wasserka | 2014-08-12 | 7 | -8/+230 |
| | |||||
* | Pica: Add primitive assembly stage. | Tony Wasserka | 2014-08-12 | 7 | -2/+95 |
| | |||||
* | Pica: Add vertex shader implementation. | Tony Wasserka | 2014-08-12 | 7 | -10/+722 |
| | |||||
* | Pica: Implement vertex loading. | Tony Wasserka | 2014-08-12 | 2 | -8/+102 |
| | |||||
* | Pica: Add register definition for vertex loading and rendering. | Tony Wasserka | 2014-08-12 | 1 | -33/+128 |
| | |||||
* | Pica: Add command processor. | Tony Wasserka | 2014-08-12 | 7 | -5/+107 |
| | |||||
* | Pica: Add float24 structure. | Tony Wasserka | 2014-08-12 | 1 | -0/+75 |
| | | | | | 24-bit floating points are used internally for calculations on the GPU, however the current code will still emulate that with 32-bit floating points. In the future we might want to accurately perform the calculations with correct bitness in the future, but for now we just wrap the calculations around this class. | ||||
* | Video core: Add utility class for vector operations. | Tony Wasserka | 2014-08-12 | 4 | -1/+582 |
| | | | | | I wrote most of this for ppsspp, so I hold full copyright over it. In addition to the original release in ppsspp, this provides functionality to easily extend e.g. two-dimensional vectors to three-dimensional vectors. | ||||
* | Pica/GPU: Change hardware registers to use physical addresses rather than virtual ones. | Tony Wasserka | 2014-08-12 | 2 | -8/+8 |
| | | | | | This cleans up the mess that address reading/writing had become and makes the code a *lot* more sensible. This adds a physical<->virtual address converter to mem_map.h. For further accuracy, we will want to properly extend this to support a wider range of address regions. For now, this makes simply homebrew applications work in a good manner though. | ||||
* | Remove the fancy RegisterSet class introduced in 4c2bff61e. | Tony Wasserka | 2014-08-12 | 2 | -100/+146 |
| | | | | | While it was some nice and fancy template usage, it ultimately had many practical issues regarding length of involved expressions under regular usage as well as common code completion tools not being able to handle the structures. Instead, we now use a more conventional approach which is a lot more clean to use. | ||||
* | GSP: Removed dumb GX prefixes to functions/structs in GSP namespace. | bunnei | 2014-08-06 | 1 | -6/+6 |
| | | | | - Various other cleanups. | ||||
* | Use uniform formatting when printing hexadecimal numbers. | Tony Wasserka | 2014-07-23 | 1 | -1/+1 |
| | |||||
* | GSP: Clean up GX command processing a lot and treat command id as a u8 rather than a u32. | Tony Wasserka | 2014-07-23 | 1 | -3/+2 |
| | | | | Anonymous structs are not standard C++, hence don't use them. | ||||
* | RegisterSet: Simplify code by using structs for register definition instead of unions. | Tony Wasserka | 2014-07-23 | 1 | -9/+9 |
| | |||||
* | GPU: Make use of RegisterSet. | Tony Wasserka | 2014-07-23 | 1 | -26/+28 |
| | |||||
* | Renderer: Fix component order in bottom framebuffer. | Tony Wasserka | 2014-07-23 | 2 | -5/+4 |
| | |||||
* | Renderer: Respect the active_fb GPU register. | Tony Wasserka | 2014-07-23 | 1 | -2/+9 |
| | |||||
* | Renderer: Add a few TODOs. | Tony Wasserka | 2014-07-23 | 1 | -3/+10 |
| | |||||
* | GPU debugger: Don't keep track of debugging data if no debugger views are active. | Tony Wasserka | 2014-07-22 | 1 | -0/+6 |
| | |||||
* | GPU debugger: Const correctness and build fix. | Tony Wasserka | 2014-06-12 | 1 | -3/+3 |
| | |||||
* | Preprocessor: #if's out OSX-specific GL changes on other platforms | archshift | 2014-06-12 | 1 | -0/+3 |
| | |||||
* | Pica: Use some template magic to define register structures efficiently. | Tony Wasserka | 2014-06-12 | 1 | -25/+102 |
| | |||||
* | Further refine GPU command list debugging. | Tony Wasserka | 2014-06-12 | 2 | -0/+17 |
| | |||||
* | Refine command list debugging functionality and its qt interface. | Tony Wasserka | 2014-06-12 | 2 | -8/+17 |
| | |||||
* | citra-qt: Add command list view. | Tony Wasserka | 2014-06-12 | 1 | -2/+2 |
| | |||||
* | GPU debugger: Add functionality to inspect command lists. | Tony Wasserka | 2014-06-12 | 1 | -1/+53 |
| | |||||
* | video core: added PICA definitions file. | Tony Wasserka | 2014-06-12 | 3 | -0/+37 |
| | |||||
* | Rename LCD to GPU. | Tony Wasserka | 2014-06-12 | 1 | -3/+3 |
| | |||||
* | Add initial graphics debugger interface. | Tony Wasserka | 2014-06-12 | 3 | -3/+102 |
| | |||||
* | common_types: Changed BasicRect back to Rect, in the common namespace | archshift | 2014-05-20 | 2 | -3/+3 |
| | | | | Only Rect is in the namespace for now; the rest of common should be added in the future | ||||
* | Improved clarity and whitespace | archshift | 2014-05-20 | 2 | -3/+4 |
| | | | | Changed QGL version to 3,2 in order to be less restrictive, yet it should still change up to 4,1 on OSX on Qt5. | ||||
* | CMakeLists: rename HEADS, improved comments | archshift | 2014-05-20 | 1 | -2/+2 |
| | | | | Changes for clarity of comments, removed redundant compiler flags. | ||||
* | Indent fixes | archshift | 2014-05-19 | 1 | -31/+31 |
| | |||||
* | Merge remote-tracking branch 'upstream/master' into issue-7-fix | archshift | 2014-05-17 | 1 | -7/+6 |
|\ | |||||
| * | Update FlipFramebuffer | Sethpaien | 2014-05-08 | 1 | -7/+6 |
| | | | | | | Less calculations + fix | ||||
* | | Fixed indents | archshift | 2014-05-01 | 2 | -37/+35 |
| | | |||||
* | | Reverse debugging changes | archshift | 2014-05-01 | 1 | -2/+0 |
| | | |||||
* | | TGA dumps work, courtesy of @bunnei | archshift | 2014-05-01 | 2 | -36/+38 |
| | | |||||
* | | OpenGL 3+ on OSX with GLFW | archshift | 2014-05-01 | 1 | -0/+2 |
| | | |||||
* | | IT'S ALIVE! | archshift | 2014-04-29 | 1 | -1/+6 |
| | | |||||
* | | Xcode complains that the class name is redundant. | archshift | 2014-04-28 | 1 | -1/+1 |
| | | |||||
* | | Rect to BasicRect | archshift | 2014-04-28 | 2 | -3/+3 |
|/ | | | | Somewhere along the line an OSX header had already taken the name Rect. | ||||
* | removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable class | bunnei | 2014-04-28 | 2 | -4/+1 |
| | |||||
* | fixed renderer to use correct framebuffer location | bunnei | 2014-04-27 | 2 | -8/+7 |
| | |||||
* | fixed GL context acquire (applies to Qt GUI only) | bunnei | 2014-04-22 | 1 | -0/+2 |
| | |||||
* | renamed hw_lcd module to just lcd | bunnei | 2014-04-18 | 1 | -1/+1 |
| | |||||
* | fixed framebuffer color order | bunnei | 2014-04-17 | 1 | -1/+1 |
| | |||||
* | removed hard-coded framebuffer addresses from renderer_opengl.cpp | bunnei | 2014-04-17 | 1 | -2/+4 |
| | |||||
* | cleaned up some logging messages | bunnei | 2014-04-11 | 1 | -1/+2 |
| | |||||
* | fixed a bunch of errors in CMakeLists | bunnei | 2014-04-10 | 1 | -3/+3 |
| | |||||
* | updated CMakeLists | bunnei | 2014-04-10 | 1 | -16/+2 |
| | |||||
* | fixed project includes to use new directory structure | bunnei | 2014-04-09 | 9 | -38/+39 |
| | |||||
* | got rid of 'src' folders in each sub-project | bunnei | 2014-04-09 | 7 | -0/+0 |
| | |||||
* | fixed license header in video_core | bunnei | 2014-04-09 | 7 | -182/+23 |
| | |||||
* | - removed lots of unused code from gekko | bunnei | 2014-04-09 | 3 | -367/+110 |
| | | | | - updated code style/naming conventions | ||||
* | added support for renderering the external framebuffers | bunnei | 2014-04-07 | 2 | -20/+147 |
| | |||||
* | added external framebuffer GL handles | bunnei | 2014-04-07 | 1 | -2/+11 |
| | |||||
* | added initial renderer code | bunnei | 2014-04-06 | 7 | -19/+534 |
| | |||||
* | added video_core project to solution | bunnei | 2014-04-05 | 8 | -0/+567 |