wwylele
4283f4b244
correct constness
9 years ago
wwylele
4d4dbc83a7
pica/shader/interpreter: implement SETEMIT and EMIT
9 years ago
wwylele
2599928707
pica/shader: extend UnitState for GS
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
9 years ago
wwylele
a26768503a
gl_shader_gen: don't call SampleTexture when bump map is not used
9 years ago
wwylele
1904567e36
SwRasterizer/Lighting: implement spot light
9 years ago
wwylele
b7e4eb7d90
SwRasterizer/Lighting: implement geometric factor
9 years ago
wwylele
72905b0389
SwRasterizer/Lighting: use make_tuple instead of constructor
implicit tuple constructor is a c++17 thing, which is not supported by some not-so-old libraries. Play safe for now
9 years ago
wwylele
edc3516958
pica/regs: layout geometry shader configuration regs
All the register meanings are derived from ctrulib (3dbrew is outdated for most of them)
9 years ago
wwylele
089c0d897b
pica: upload shared shader code to both unit
9 years ago
wwylele
fe4c91ae4c
SwRasterizer/Lighting: shorten file name
9 years ago
wwylele
0af90eabd8
SwRasterizer/Lighting: move to its own file
9 years ago
wwylele
a402f75cf4
SwRasterizer/Lighting: reduce confusion
9 years ago
wwylele
cfd3edb942
SwRasterizer/Lighting: move quaternion normalization to the caller
9 years ago
wwylele
dc6f41bcc5
pica/shader_interpreter: fix off-by-one in LOOP
9 years ago
bunnei
b2bfbf5120
telemetry: Log performance, configuration, and system data.
9 years ago
wwylele
9f7ba9c282
SwRasterizer/Lighting: dist atten lut input need to be clamp
9 years ago
wwylele
4fe16d80bd
SwRasterizer/Lighting: unify float suffix
9 years ago
wwylele
35bbf67e6e
SwRasterizer/Lighting: get rid of nested return
9 years ago
wwylele
a98f20df55
SwRasterizer/Lighting: refactor GetLutValue into a function.
merging similar pattern. Also makes the code more similar to the gl one
9 years ago
wwylele
e34dc666cf
SwRasterizer: only interpolate quat and view when lighting is enabled
9 years ago
wwylele
837642011d
SwRasterizer/Lighting: pass lighting state as parameter
9 years ago
Subv
57bd9fca7a
SwRasterizer/Lighting: Move the clamp highlight calculation to the end of the per-light loop body.
9 years ago
Subv
d96c1bd977
SwRasterizer/Lighting: Move the lighting enable check outside the ComputeFragmentsColors function.
9 years ago
Subv
08ebc3203d
SwRasterizer/Lighting: Do not use global registers state in ComputeFragmentsColors.
9 years ago
Subv
5d5611f3d7
SwRasterizer/Lighting: Do not use global state in LookupLightingLut.
9 years ago
Subv
c2088581a0
SwRasterizer/Lighting: Fixed a bug where the distance attenuation bias was being set to the dist atten scale.
9 years ago
Subv
eefe9b2bed
SwRasterizer: Fixed a few conversion warnings and moved per-light values into the per-light loop.
9 years ago
Subv
232ff77c65
SwRasterizer: Run clang-format
9 years ago
Subv
1dcd48ba2a
SwRasterizer: Flip the vertex quaternions before clipping (if necessary).
9 years ago
Subv
97723538d8
SwRasterizer: Corrected the light LUT lookups.
9 years ago
Subv
9bc4d2754b
SwRasterizer: Corrected the light LUT lookups.
9 years ago
Subv
e50af9c6a1
SwRasterizer: Fixed the lighting lut lookup function.
9 years ago
Subv
3bdb54d954
SwRasterizer: Calculate fresnel for fragment lighting.
9 years ago
Subv
e238921440
SwRasterizer: Calculate specular_1 for fragment lighting.
9 years ago
Subv
e28b936c5d
SwRasterizer: Calculate specular_0 for fragment lighting.
9 years ago
Subv
8e95685a2a
SwRasterizer: Implement primary fragment color.
9 years ago
wwylele
54eafa42ce
gl_rasterizer: use texture buffer for proctex LUT
9 years ago
wwylele
f1afe2baa8
gl_rasterizer: use texture buffer for fog LUT
9 years ago
wwylele
b3f9d734f0
gl_rasterizer: create the texture before applying the state
this is a rebasing error from #2792 . It doesn't affect much though, because the later more Apply() call fixes/hides it
9 years ago
wwylele
3e20762caa
gl_state: reset 1d textures
9 years ago
wwylele
49cf57c079
gl_rasterizer: fix glGetUniformLocation type
9 years ago
wwylele
4dc2b38ce2
gl_rasterizer: manage texture ids in one place
9 years ago
wwylele
98a84efd39
gl_rasterizer/lighting: fix LUT interpolation
9 years ago
wwylele
7318329bbb
gl_rasterizer/lighting: use the formula from the paper for germetic factor
9 years ago
Yuri Kunde Schlesner
ccdeacf149
Stop using reserved operator names (and/or/xor) with Xbyak
Also has the Dynarmic upgrade with the same change
9 years ago
wwylele
a8f1a9cbb4
gl_rasterizer/lighting: implement geometric factor
9 years ago
wwylele
bd01da889f
gl_rasterizer/lighting: Implement tangent mapping
9 years ago
wwylele
8b2aeb449c
gl_rasterizer/lighting: implement lut input 5 (CP)
9 years ago
wwylele
13481c8131
gl_rasterizer_cache: depth write is disabled if allow_depth_stencil_write is false
9 years ago
Yuri Kunde Schlesner
5903948a7a
OpenGL: Update comment on AreQuaternionsOpposite with new information
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.
9 years ago