Yuri Kunde Schlesner
eb10f25025
Move screen size constants from video_core to core
video_core didn't even properly use them, and they were the source of
many otherwise-unnecessary dependencies from core to video_core.
9 years ago
Yuri Kunde Schlesner
6665557ff7
OpenGL: Remove unused RendererOpenGL fields
9 years ago
wwylele
90c8d09098
gl_shader: refactor texture sampler into its own function
9 years ago
wwylele
36526c63ef
swrasterizer: add missing tc0_w and fragment lighting attribute processing
9 years ago
wwylele
4d62e75fb2
gl_rasterizer: implement procedural texture
9 years ago
wwylele
ade45b5b99
pica/swrasterizer: implement procedural texture
9 years ago
wwylele
393fee10a2
pica: use correct register value for shader bool_uniforms
variable value is not masked. the masked and combined register value should be used instead
9 years ago
wwylele
86ee1f6101
pica: correct bit field length for some registers
9 years ago
Jannik Vogel
ba722be2ac
Pica: Write GS registers
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.
9 years ago
Jannik Vogel
3fd3775d35
Pica: Write shader registers in functions
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.
9 years ago
Jannik Vogel
925724c990
Pica: Set program code / swizzle data limit to 4096
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]).
9 years ago
wwylele
039b293092
pica: shader_dirty if texture2 coord changed
9 years ago
wwylele
0f664ef89d
pica: use correct coordinates for texture 2
9 years ago
wwylele
2c2e872b31
gl_shader_gen: remove TODO about Lerp behaviour verification. The implementation is verified against hardware
9 years ago
wwylele
b624a95205
rasterizer: implement combiner operation 7 (Dot3_RGBA)
9 years ago
Yuri Kunde Schlesner
52a4489d65
OpenGL: Pass Pica regs via parameter
9 years ago
Yuri Kunde Schlesner
a6fd4533f6
OpenGL: Move PicaShaderConfig to gl_shader_gen.h
Also move the implementation of CurrentConfig to the cpp file.
9 years ago
Yuri Kunde Schlesner
40e28f6217
OpenGL: Move Attributes enum to a more appropriate file
9 years ago
Jannik Vogel
1b397c77fa
Pica/Regs: Correct bit width for blend-equations
9 years ago
wwylele
e02c4b7195
Input: remove unused stuff & clean up
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
9 years ago
Mat M
0cb52ee74a
Doxygen: Amend minor issues ( #2593 )
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.
9 years ago
Yuri Kunde Schlesner
fb1979d7e2
Core: Re-write frame limiter
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.
9 years ago
Yuri Kunde Schlesner
b285c2a4ed
Core: Make PerfStats internally locked
More ergonomic to use and will be required for upcoming changes.
9 years ago
Yuri Kunde Schlesner
3b4e400333
Remove built-in (non-Microprofile) profiler
9 years ago
Yuri Kunde Schlesner
c75ae6c585
Add performance statistics to status bar
9 years ago
Jannik Vogel
e594e63bb5
OpenGL: Check if uniform block exists before updating it ( #2581 )
9 years ago
Weiyi Wang
e085e6a768
video_core: remove #pragma once in cpp file ( #2570 )
9 years ago
Yuri Kunde Schlesner
426fda1d52
SWRasterizer: Move more framebuffer functions to file
9 years ago
Yuri Kunde Schlesner
1683cb0ec9
SWRasterizer: Move texturing functions to their own file
9 years ago
Yuri Kunde Schlesner
f9026e8a7a
SWRasterizer: Convert large no-capture lambdas to standalone functions
9 years ago
Yuri Kunde Schlesner
e1ad7d69b9
SWRasterizer: Move framebuffer operation functions to their own file
9 years ago
Yuri Kunde Schlesner
e24717bca0
VideoCore: Move software rasterizer files to sub-directory
9 years ago
Yuri Kunde Schlesner
e10b11a5d0
video_core/shader: Document sanitized MUL operation
9 years ago
Yuri Kunde Schlesner
e2fa1ca5e1
video_core: Fix benign out-of-bounds indexing of array ( #2553 )
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
9 years ago
Yuri Kunde Schlesner
553e672777
VideoCore: Split u64 Pica reg unions into 2 separate u32 unions
This eliminates UB when aliasing it with the array of u32 regs, and
is compatible with non-LE architectures.
9 years ago
Yuri Kunde Schlesner
bfb1531352
VideoCore: Force enum sizes to u32 in LightingRegs
All enums that are used with BitField must have their type forced to u32
to ensure correctness.
9 years ago
Yuri Kunde Schlesner
af65e1c0a0
OpenGL: Remove unused duplicate of IsPassThroughTevStage
This copy was left behind when the shader generation code was moved to a
separate file.
9 years ago
Yuri Kunde Schlesner
60fc0b086f
VideoCore: Split regs.h inclusions
9 years ago
Yuri Kunde Schlesner
f241bb72f5
Pica/Regs: Use binary search to look up reg names
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.)
9 years ago
Yuri Kunde Schlesner
602f57da38
VideoCore: Use union to index into Regs struct
Also remove some unused members.
9 years ago
Lectem
f146a6d45a
Use std::array<u8,2> instead of u8[2] to fix MSVC build
9 years ago
Yuri Kunde Schlesner
5759d94b5c
VideoCore: Move Regs to its own file
9 years ago
Yuri Kunde Schlesner
f7c7f422c6
VideoCore: Split shader regs from Regs struct
9 years ago
Yuri Kunde Schlesner
8fca90b5d5
VideoCore: Split geometry pipeline regs from Regs struct
9 years ago
Yuri Kunde Schlesner
f443c7e5b0
VideoCore: Split lighting regs from Regs struct
9 years ago
Yuri Kunde Schlesner
23713d5dee
VideoCore: Split framebuffer regs from Regs struct
9 years ago
Yuri Kunde Schlesner
9017093f58
VideoCore: Split texturing regs from Regs struct
9 years ago
Yuri Kunde Schlesner
000e78144c
VideoCore: Split rasterizer regs from Regs struct
9 years ago
Yuri Kunde Schlesner
c74787a11c
Pica/Texture: Move part of ETC1 decoding to new file and cleanups
9 years ago
Yuri Kunde Schlesner
09a750e866
Pica/Texture: Simplify/cleanup texture tile addressing
9 years ago