Yuri Kunde Schlesner
4a5d297fe7
CMake: Correct inter-module dependencies and library visibility
...
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-27 18:41:24 -07:00
Yuri Kunde Schlesner
466433f753
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.
2017-05-27 18:41:24 -07:00
Yuri Kunde Schlesner
17770e7174
OpenGL: Remove unused RendererOpenGL fields
2017-05-27 18:02:46 -07:00
wwylele
b27fc52cee
gl_shader: refactor texture sampler into its own function
2017-05-27 01:56:22 +03:00
Yuri Kunde Schlesner
675d483535
Merge pull request #2697 from wwylele/proctex
...
Implemented Procedural Texture (Texture Unit 3)
2017-05-24 21:37:42 -07:00
wwylele
ec0b9fb820
swrasterizer: add missing tc0_w and fragment lighting attribute processing
2017-05-21 09:09:15 +03:00
wwylele
b06772686f
gl_rasterizer: implement procedural texture
2017-05-20 13:50:50 +03:00
wwylele
eba689e736
pica/swrasterizer: implement procedural texture
2017-05-20 13:50:50 +03:00
wwylele
53a6a4a83f
pica: use correct register value for shader bool_uniforms
...
variable value is not masked. the masked and combined register value should be used instead
2017-05-17 22:14:09 +03:00
Yuri Kunde Schlesner
589a568e19
Merge pull request #2703 from wwylele/pica-reg-revise
...
pica: correct bit field length for some registers
2017-05-16 10:00:37 -07:00
wwylele
402e92f4a4
pica: correct bit field length for some registers
2017-05-16 19:24:06 +03:00
Jannik Vogel
35570252e1
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.
2017-05-12 16:22:37 +02:00
Jannik Vogel
ee56dfd830
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.
2017-05-12 16:22:37 +02:00
Jannik Vogel
54a038c69c
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]).
2017-05-11 15:01:27 +02:00
wwylele
37a8e18c4f
pica: shader_dirty if texture2 coord changed
2017-05-05 15:35:17 +03:00
wwylele
8c0ced30fa
pica: use correct coordinates for texture 2
2017-05-03 22:12:46 +03:00
bunnei
f2b3253112
Merge pull request #2671 from wwylele/dot3-rgba
...
rasterizer: implement combiner operation 7 (Dot3_RGBA)
2017-04-21 17:03:22 -04:00
wwylele
4b284eaac3
gl_shader_gen: remove TODO about Lerp behaviour verification. The implementation is verified against hardware
2017-04-20 22:56:07 +03:00
wwylele
e60e8575aa
rasterizer: implement combiner operation 7 (Dot3_RGBA)
2017-04-19 23:48:10 +03:00
Yuri Kunde Schlesner
ee693ae71a
OpenGL: Pass Pica regs via parameter
2017-04-17 10:34:45 -07:00
Yuri Kunde Schlesner
b00143d209
OpenGL: Move PicaShaderConfig to gl_shader_gen.h
...
Also move the implementation of CurrentConfig to the cpp file.
2017-04-16 21:49:32 -07:00
Yuri Kunde Schlesner
bee37722a8
OpenGL: Move Attributes enum to a more appropriate file
2017-04-16 20:47:04 -07:00
Jannik Vogel
d357e07906
Pica/Regs: Correct bit width for blend-equations
2017-04-08 18:33:17 +02:00
wwylele
8b46139770
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
2017-03-01 23:30:57 +02:00
Mat M
43cabebf82
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.
2017-02-26 17:58:51 -08:00
Yuri Kunde Schlesner
4a2918436e
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.
2017-02-26 17:22:04 -08:00
Yuri Kunde Schlesner
fac1bfea42
Core: Make PerfStats internally locked
...
More ergonomic to use and will be required for upcoming changes.
2017-02-26 17:22:03 -08:00
Yuri Kunde Schlesner
ffb3670f6d
Remove built-in (non-Microprofile) profiler
2017-02-26 17:22:03 -08:00
Yuri Kunde Schlesner
7572bf7839
Add performance statistics to status bar
2017-02-26 17:22:03 -08:00
Jannik Vogel
ebfab021e1
OpenGL: Check if uniform block exists before updating it ( #2581 )
2017-02-18 11:46:26 -08:00
Weiyi Wang
41bb4a731a
video_core: remove #pragma once in cpp file ( #2570 )
2017-02-15 00:16:50 -08:00
Yuri Kunde Schlesner
f3f772585a
SWRasterizer: Move more framebuffer functions to file
2017-02-12 18:13:04 -08:00
Yuri Kunde Schlesner
6cd2c78276
SWRasterizer: Move texturing functions to their own file
2017-02-12 18:12:37 -08:00
Yuri Kunde Schlesner
eddcada0ff
SWRasterizer: Convert large no-capture lambdas to standalone functions
2017-02-12 18:11:05 -08:00
Yuri Kunde Schlesner
4493b36043
SWRasterizer: Move framebuffer operation functions to their own file
2017-02-12 18:11:03 -08:00
Yuri Kunde Schlesner
cd9a35d93f
VideoCore: Move software rasterizer files to sub-directory
2017-02-12 18:08:11 -08:00
Yuri Kunde Schlesner
ea975748d8
video_core/shader: Document sanitized MUL operation
2017-02-12 13:29:14 -08:00
Yuri Kunde Schlesner
da13acd485
Merge pull request #2550 from yuriks/pica-refactor2
...
Small VideoCore cleanups
2017-02-12 12:33:26 -08:00
Yuri Kunde Schlesner
cd8d7f1416
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
2017-02-10 20:51:09 -08:00
Yuri Kunde Schlesner
72a5d6b08f
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.
2017-02-09 00:04:25 -08:00
Yuri Kunde Schlesner
8d3f70d4fd
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.
2017-02-09 00:04:24 -08:00
Yuri Kunde Schlesner
9eae5280b3
OpenGL: Remove unused duplicate of IsPassThroughTevStage
...
This copy was left behind when the shader generation code was moved to a
separate file.
2017-02-09 00:04:24 -08:00
Yuri Kunde Schlesner
a06a119de1
VideoCore: Split regs.h inclusions
2017-02-09 00:04:24 -08:00
Yuri Kunde Schlesner
bd37d33bae
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.)
2017-02-09 00:04:24 -08:00
Yuri Kunde Schlesner
08f4529f6f
VideoCore: Use union to index into Regs struct
...
Also remove some unused members.
2017-02-08 22:13:25 -08:00
Yuri Kunde Schlesner
0fc1895abe
Merge pull request #2482 from yuriks/pica-refactor
...
Split up monolithic Regs struct
2017-02-08 22:07:34 -08:00
Lectem
4550c30b6b
Use std::array<u8,2> instead of u8[2] to fix MSVC build
2017-02-05 14:55:51 +01:00
Yuri Kunde Schlesner
923814f99e
VideoCore: Move Regs to its own file
2017-02-04 13:59:12 -08:00
Yuri Kunde Schlesner
622aff5d9b
VideoCore: Split shader regs from Regs struct
2017-02-04 13:59:11 -08:00
Yuri Kunde Schlesner
4b0034dcd8
VideoCore: Split geometry pipeline regs from Regs struct
2017-02-04 13:59:11 -08:00