aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2017-05-27CMake: Use IMPORTED target for libpngYuri Kunde Schlesner
2017-05-27CMake: Correct inter-module dependencies and library visibilityYuri Kunde Schlesner
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.
2017-05-27Move screen size constants from video_core to coreYuri Kunde Schlesner
video_core didn't even properly use them, and they were the source of many otherwise-unnecessary dependencies from core to video_core.
2017-05-27OpenGL: Remove unused RendererOpenGL fieldsYuri Kunde Schlesner
2017-05-27OpenGL: Improve accuracy of quaternion interpolationYuri Kunde Schlesner
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.
2017-05-27gl_shader: refactor texture sampler into its own functionwwylele
2017-05-24Merge pull request #2697 from wwylele/proctexYuri Kunde Schlesner
Implemented Procedural Texture (Texture Unit 3)
2017-05-21swrasterizer: add missing tc0_w and fragment lighting attribute processingwwylele
2017-05-20gl_rasterizer: implement procedural texturewwylele
2017-05-20pica/swrasterizer: implement procedural texturewwylele
2017-05-17pica: use correct register value for shader bool_uniformswwylele
variable value is not masked. the masked and combined register value should be used instead
2017-05-16Merge pull request #2703 from wwylele/pica-reg-reviseYuri Kunde Schlesner
pica: correct bit field length for some registers
2017-05-16pica: correct bit field length for some registerswwylele
2017-05-12Pica: Write GS registersJannik Vogel
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.
2017-05-12Pica: Write shader registers in functionsJannik Vogel
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.
2017-05-11Pica: Set program code / swizzle data limit to 4096Jannik Vogel
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]).
2017-05-05pica: shader_dirty if texture2 coord changedwwylele
2017-05-03pica: use correct coordinates for texture 2wwylele
2017-04-21Merge pull request #2671 from wwylele/dot3-rgbabunnei
rasterizer: implement combiner operation 7 (Dot3_RGBA)
2017-04-20gl_shader_gen: remove TODO about Lerp behaviour verification. The ↵wwylele
implementation is verified against hardware
2017-04-19rasterizer: implement combiner operation 7 (Dot3_RGBA)wwylele
2017-04-17OpenGL: Pass Pica regs via parameterYuri Kunde Schlesner
2017-04-16OpenGL: Move PicaShaderConfig to gl_shader_gen.hYuri Kunde Schlesner
Also move the implementation of CurrentConfig to the cpp file.
2017-04-16OpenGL: Move Attributes enum to a more appropriate fileYuri Kunde Schlesner
2017-04-08Pica/Regs: Correct bit width for blend-equationsJannik Vogel
2017-03-01Input: remove unused stuff & clean upwwylele
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
2017-02-26Doxygen: Amend minor issues (#2593)Mat M
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.
2017-02-26Core: Re-write frame limiterYuri Kunde Schlesner
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.
2017-02-26Core: Make PerfStats internally lockedYuri Kunde Schlesner
More ergonomic to use and will be required for upcoming changes.
2017-02-26Remove built-in (non-Microprofile) profilerYuri Kunde Schlesner
2017-02-26Add performance statistics to status barYuri Kunde Schlesner
2017-02-18OpenGL: Check if uniform block exists before updating it (#2581)Jannik Vogel
2017-02-15video_core: remove #pragma once in cpp file (#2570)Weiyi Wang
2017-02-12SWRasterizer: Move more framebuffer functions to fileYuri Kunde Schlesner
2017-02-12SWRasterizer: Move texturing functions to their own fileYuri Kunde Schlesner
2017-02-12SWRasterizer: Convert large no-capture lambdas to standalone functionsYuri Kunde Schlesner
2017-02-12SWRasterizer: Move framebuffer operation functions to their own fileYuri Kunde Schlesner
2017-02-12VideoCore: Move software rasterizer files to sub-directoryYuri Kunde Schlesner
2017-02-12video_core/shader: Document sanitized MUL operationYuri Kunde Schlesner
2017-02-12Merge pull request #2550 from yuriks/pica-refactor2Yuri Kunde Schlesner
Small VideoCore cleanups
2017-02-10video_core: Fix benign out-of-bounds indexing of array (#2553)Yuri Kunde Schlesner
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
2017-02-09VideoCore: Split u64 Pica reg unions into 2 separate u32 unionsYuri Kunde Schlesner
This eliminates UB when aliasing it with the array of u32 regs, and is compatible with non-LE architectures.
2017-02-09VideoCore: Force enum sizes to u32 in LightingRegsYuri Kunde Schlesner
All enums that are used with BitField must have their type forced to u32 to ensure correctness.
2017-02-09OpenGL: Remove unused duplicate of IsPassThroughTevStageYuri Kunde Schlesner
This copy was left behind when the shader generation code was moved to a separate file.
2017-02-09VideoCore: Split regs.h inclusionsYuri Kunde Schlesner
2017-02-09Pica/Regs: Use binary search to look up reg namesYuri Kunde Schlesner
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.)
2017-02-08VideoCore: Use union to index into Regs structYuri Kunde Schlesner
Also remove some unused members.
2017-02-08Merge pull request #2482 from yuriks/pica-refactorYuri Kunde Schlesner
Split up monolithic Regs struct
2017-02-05Use std::array<u8,2> instead of u8[2] to fix MSVC buildLectem
2017-02-04VideoCore: Move Regs to its own fileYuri Kunde Schlesner