wwylele
06dfd8eee1
swrasterizer: implement TextureCube
9 years ago
wwylele
1295e20de3
pica: add registers for texture cube
9 years ago
wwylele
5e5816c800
gl_shader: refactor texture sampler into its own function
9 years ago
wwylele
e965922607
swrasterizer: add missing tc0_w and fragment lighting attribute processing
9 years ago
wwylele
19583dfd61
gl_rasterizer: implement procedural texture
9 years ago
wwylele
b010ff8174
pica/swrasterizer: implement procedural texture
9 years ago
wwylele
c033f16977
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
2a89d391c9
pica: correct bit field length for some registers
9 years ago
Jannik Vogel
f3efa5e031
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
52c66441ab
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
b9cc8596a2
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
cb51c1024f
pica: shader_dirty if texture2 coord changed
9 years ago
wwylele
39d77e5d9d
pica: use correct coordinates for texture 2
9 years ago
wwylele
fdbc63d7b2
gl_shader_gen: remove TODO about Lerp behaviour verification. The implementation is verified against hardware
9 years ago
wwylele
aaa320dd45
rasterizer: implement combiner operation 7 (Dot3_RGBA)
9 years ago
Yuri Kunde Schlesner
7938f9250c
OpenGL: Pass Pica regs via parameter
9 years ago
Yuri Kunde Schlesner
9b5c90cbe3
OpenGL: Move PicaShaderConfig to gl_shader_gen.h
Also move the implementation of CurrentConfig to the cpp file.
9 years ago
Yuri Kunde Schlesner
f510fe1b2e
OpenGL: Move Attributes enum to a more appropriate file
9 years ago
Jannik Vogel
ee331cf4f8
Pica/Regs: Correct bit width for blend-equations
9 years ago
wwylele
9bdb78f869
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
dc1927a9d1
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
5990d020a8
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
ea78f30e67
Core: Make PerfStats internally locked
More ergonomic to use and will be required for upcoming changes.
9 years ago
Yuri Kunde Schlesner
e7c2eba35d
Remove built-in (non-Microprofile) profiler
9 years ago
Yuri Kunde Schlesner
3a9447bc16
Add performance statistics to status bar
9 years ago
Jannik Vogel
4dc66fd320
OpenGL: Check if uniform block exists before updating it ( #2581 )
9 years ago
Weiyi Wang
f729229811
video_core: remove #pragma once in cpp file ( #2570 )
9 years ago
Yuri Kunde Schlesner
5209e82858
SWRasterizer: Move more framebuffer functions to file
9 years ago
Yuri Kunde Schlesner
dfc2ec178f
SWRasterizer: Move texturing functions to their own file
9 years ago
Yuri Kunde Schlesner
541f464d68
SWRasterizer: Convert large no-capture lambdas to standalone functions
9 years ago
Yuri Kunde Schlesner
fed2e59280
SWRasterizer: Move framebuffer operation functions to their own file
9 years ago
Yuri Kunde Schlesner
9c0a770c16
VideoCore: Move software rasterizer files to sub-directory
9 years ago
Yuri Kunde Schlesner
653723399c
video_core/shader: Document sanitized MUL operation
9 years ago
Yuri Kunde Schlesner
ef90a662f2
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
176b247d68
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
381733acfa
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
4f4f04078b
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
ddf23d4a2e
VideoCore: Split regs.h inclusions
9 years ago
Yuri Kunde Schlesner
1b3b6d9d9a
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
55110e9361
VideoCore: Use union to index into Regs struct
Also remove some unused members.
9 years ago
Lectem
dcb1f220cd
Use std::array<u8,2> instead of u8[2] to fix MSVC build
9 years ago
Yuri Kunde Schlesner
a0b1957425
VideoCore: Move Regs to its own file
9 years ago
Yuri Kunde Schlesner
08df8f7d7a
VideoCore: Split shader regs from Regs struct
9 years ago
Yuri Kunde Schlesner
90d220d1b3
VideoCore: Split geometry pipeline regs from Regs struct
9 years ago
Yuri Kunde Schlesner
b4306bed74
VideoCore: Split lighting regs from Regs struct
9 years ago
Yuri Kunde Schlesner
6f9218c8ec
VideoCore: Split framebuffer regs from Regs struct
9 years ago
Yuri Kunde Schlesner
1242f42a09
VideoCore: Split texturing regs from Regs struct
9 years ago
Yuri Kunde Schlesner
d3928b7f9a
VideoCore: Split rasterizer regs from Regs struct
9 years ago
Yuri Kunde Schlesner
2937a44eed
Pica/Texture: Move part of ETC1 decoding to new file and cleanups
9 years ago
Yuri Kunde Schlesner
114222b11e
Pica/Texture: Simplify/cleanup texture tile addressing
9 years ago