Weiyi Wang
9772513141
Merge pull request #3639 from wwylele/texture-cude-fix
...
gl_rasterizer_cache: exit FillTextureCube when address is invalid
2018-04-12 22:54:14 +03:00
wwylele
8dc75598a4
gl_rasterizer: isolate shader management into its own class
2018-04-11 14:52:37 +03:00
wwylele
36bc92273b
gl_shader_gen: accept an option to generate separable shaders
2018-04-11 14:52:37 +03:00
wwylele
bdab18d2d9
gl_resource_manager: add OGLPipeline
2018-04-11 14:52:37 +03:00
wwylele
4f9b9c4b80
gl_state: add pipeline state
2018-04-11 14:41:43 +03:00
wwylele
48869c768f
gl_resource_manager: separate OGLShader and OGLProgram
2018-04-11 14:41:43 +03:00
wwylele
d2ee40dc45
gl_shader_util: separate shader object creation and program object creation
2018-04-11 14:41:43 +03:00
wwylele
4256641da4
gl_rasterizer/lighting: implement shadow attenuation
2018-04-10 20:26:55 +03:00
wwylele
b5763cb952
pica/lighting: split FresnelSelector into bitfields
...
The FresnelSelector was already working like a bitfield, so just make it actual bitfield to reduce redundant code. Also, it is already confirmed that this field also affects shadow on alpha. Given that the only two source that can affect alpha components are both controlled by this field, this field should be renamed to a general alpha switch
2018-04-10 20:25:56 +03:00
wwylele
7e7de7d3ab
gl_rasterizer_cache: exit FillTextureCube when address is invalid
2018-04-08 12:34:50 +03:00
Dwayne Slater
234161ba62
Make byteround less expensive (thanks hrydgard!)
2018-04-07 18:26:14 -04:00
Dwayne Slater
734279ff22
Round TEV outputs and the final fragment output in GLSL
...
Fixes water effect in SM3DL
2018-04-07 16:43:56 -04:00
Weiyi Wang
972db17247
Merge pull request #3497 from wwylele/texture-cube-new
...
gl_rasterizer: implement TextureCube
2018-04-06 12:41:40 +03:00
Weiyi Wang
a9544ca015
Merge pull request #3580 from daniellimws/common-fmt
...
common: Migrate logging macros
2018-04-06 12:38:08 +03:00
Weiyi Wang
e3d25bc6d0
Merge pull request #3567 from wwylele/pica-glsl
...
renderer_opengl: add PICA->GLSL shader decompiler
2018-04-05 14:39:27 +03:00
Weiyi Wang
acb02d300c
Merge pull request #3518 from wwylele/hashable-struct
...
Common/Hash: abstract HashableStruct from GLShader::PicaShaderConfig
2018-04-05 14:39:12 +03:00
James Rowe
1fecead2ff
Merge pull request #3624 from wwylele/sync-uniform
...
gl_rasterizer: move shader uniform sync from SetShader() to ctor
2018-04-05 00:30:38 -06:00
wwylele
0d84c5a0b6
gl_rasterizer: move state syncing from ctor to its own function
2018-04-04 17:23:55 +03:00
wwylele
c2719feda2
gl_rasterizer: move shader uniform sync from SetShader() to ctor
2018-04-03 09:27:23 +03:00
Valentin Vanelslande
c9ab184ec7
pica_to_gl: Migrate logging macros ( #3608 )
2018-04-02 09:31:28 -06:00
wwylele
9ffd400685
gl_shader_decompiler: add missing headers/rename GetXXX to MoveXXX to reflect that they move the data
2018-04-02 17:34:54 +03:00
wwylele
11c2f11872
gl_shader_decompiler: return error on decompilation failure
...
Internally these errors are handled by exceptions. Only fallbackable errors (that can be handled by CPU shader emulation) is reported. Completely ill-formed shader is still ASSERTed. Code logic related stuff is DEBUG_ASSERTed
2018-04-02 17:34:54 +03:00
wwylele
4991b15ee5
gl_shader_decompiler: some small fixes
...
- remove unnecessary ";"
- use std::tie for lexicographical ordering
- simplify loop condition
The offset always has step +1 on each iteration, so it would just hit one of the two boundary anyway
2018-04-02 17:34:54 +03:00
wwylele
f8a292f920
renderer_opengl: add PICA->GLSL shader decompiler
2018-04-02 17:34:54 +03:00
Lioncash
7d331a469f
pica_to_gl: Use std::array where applicable
...
Removes the need to use the ARRAY_SIZE macro
2018-03-31 00:58:49 -04:00
Tobias
bb6251f35f
video_core: Remove Unreachable for invalid BlendEquation modes ( #3595 )
...
* video_core: Remove Unreachable statement
* Lower log level to ERROR
2018-03-29 17:53:55 -06:00
Lioncash
27a3d44b16
gl_rasterizer: Fix incorrect comparison against src_surface in AccelerateTextureCopy()
...
This should actually be comparing the validity of the destination
surface.
2018-03-28 21:13:57 -04:00
Daniel Lim Wee Soong
968569aa61
Replace format specifiers for all usages of ASSERT_MSG
2018-03-27 23:28:42 +08:00
Weiyi Wang
9e4f670ea9
Merge pull request #3484 from wwylele/highlight-fix
...
pica/lighting: compute highlight clamp after one-/two-sided diffuse pass
2018-03-18 23:41:27 +02:00
Mat M
79d1bcf5ba
Merge pull request #3506 from MerryMage/mov-gl_resource_manager
...
gl_resource_manager: Use std::exchange in move assignment operators and constructors
2018-03-17 16:30:58 -04:00
Markus Wick
ac92664aa7
OGL: Use stream buffer for vertex data.
2018-03-17 02:02:39 +01:00
Phantom
50598fbbf4
stream buffer
2018-03-17 02:02:39 +01:00
MerryMage
e3f9bfd850
gl_resource_manager: Use std::exchange instead of std::swap in move assignment operators and constructors
...
Move assignment operators and move constructors should ideally leave the object moved from in a state where resources aren't accessable.
2018-03-16 23:47:49 +00:00
wwylele
30cc8c10cd
Common/Hash: abstract HashableStruct from GLShader::PicaShaderConfig
2018-03-14 00:12:40 +02:00
wwylele
889d8aaab3
gl_rasterizer/cache: only reallocate cubemap when size/format mismatch
2018-03-11 13:31:29 +02:00
wwylele
15e8664ef7
gl_rasterizer: implement texture cube
2018-03-10 01:15:06 +02:00
wwylele
92c7bb9d20
pica/gl_shader: optimize ternary operator
2018-03-10 01:14:05 +02:00
wwylele
0d6db4a0b3
lighting: compute highlight clamp after one-/two-sided diffuse pass
2018-03-10 01:14:05 +02:00
James Rowe
f61141e86a
Update the entire application to use the new clang format style
2018-03-09 10:54:43 -07:00
Vamsi Krishna
04cc8fb537
Discard Gas mode renders ( #3486 )
...
* Discard gas_mode renders
This discards the gas_mode / fog effect from games that use it and allows the games to display without it. Note that gas mode is still unimplemented and will LOG<CRITICAL>.
This bypasses #3287 . (Doesn't fix it)
* fix clang
2018-03-07 18:02:36 -05:00
Weiyi Wang
4befbddc34
Merge pull request #3281 from jroweboy/texcache-pt2
...
Texture Cache Rework
2018-03-05 11:57:25 +02:00
wwylele
c2515ff39d
clang-format fix
2018-03-05 11:09:20 +02:00
James Rowe
1d419bac1b
Disable accelerated texture copy for Texture surfaces
2018-03-04 22:06:09 -07:00
James Rowe
18456ff9e6
Address Lioncash's comments
2018-02-05 20:31:50 -07:00
Phantom
9e16a3c449
ConvertD24S8toABGR: fix fb attachment
2018-01-31 08:55:39 -07:00
Phantom
d813bc5eb5
D24S8 to RGBA8 conversion
2018-01-31 08:55:19 -07:00
Phantom
db21154142
GetFramebufferSurfaces: Remove an assert that is no longer correct
2018-01-31 08:54:19 -07:00
Phantom
88f6521511
AccelerateTextureCopy: Better support for contiguous copy
2018-01-20 18:39:27 -07:00
Yuri Kunde Schlesner
d93ee65164
Common: Add convenience function for hashing a struct
2018-01-15 13:43:37 -08:00
Phantom
7f1aec8fbb
Support for textures smaller than 8*8
2017-12-30 07:42:32 +01:00
Phantom
be1d0cee1e
Fix viewport to surface rect clamping
2017-12-29 17:07:01 +01:00
Phantom
19672cfee8
CachedSurface: Add microprofile scopes for UploadGLTexture and DownloadGLTexture
2017-12-29 17:01:37 +01:00
Phantom
1591fa8d3d
Remove read_framebuffer_handle and draw_framebuffer_handle from CachedSurface
2017-12-29 17:00:09 +01:00
James Rowe
1c4d1d1ace
Move trasnfer_framebuffer to a member of RasterCache. Address review comments
2017-12-23 16:10:32 -07:00
James Rowe
10fb9242ae
Fix clang format
2017-12-23 16:10:32 -07:00
James Rowe
4e053220a8
When downloading from a surface into gl_buffer, ingore any x/y offsets in rect and use 0,0 as the origin
2017-12-23 16:10:31 -07:00
James Rowe
7e673af527
Remove the correct intervals from the surface when validating
2017-12-23 16:10:31 -07:00
James Rowe
ac4c589ab5
Workaround for ICE on gcc5
2017-12-23 16:10:31 -07:00
Phantom
9a6a452857
Fix broken surface validation logic since removal of the reinterpret hack
2017-12-23 16:10:30 -07:00
Phantom
f893daa4a2
Perform the same checks on TexCopy params that SW does
2017-12-23 16:10:30 -07:00
James Rowe
91fad7010b
Fix compilation on mac and linux
2017-12-23 16:10:30 -07:00
James Rowe
34ff77f5f7
Revert "OpenGL Cache: Ignore format reinterpretation hack"
...
Testing found a few games that did some crazy things which breaks the
assumptions made in that commit.
2017-12-23 16:10:29 -07:00
James Rowe
72034b772d
Minor style changes
2017-12-23 16:10:29 -07:00
James Rowe
0498d34d18
OpenGL Cache: Ignore format reinterpretation hack
...
Several games such as Smash will cause some regions that are cached on
the gpu to be revalidated, but (seemingly) we can just ignore these
cases. If the data is already found on the gpu in dirty_regions, then we
validate those, and skip flushing that region from cpu.
Its unknown if this breaks any games, but it does speed up many games.
Additionally, it removes outlines in the pokemon games.
2017-12-23 16:10:29 -07:00
James Rowe
5b872c41d8
OpenGL Cache: Reorder methods
...
The previous commits added the methods where they were located
originally to try to get an easy to read diff between changes. This
commit fixes compliation since the static methods are now declared
before they are used.
2017-12-23 16:10:28 -07:00
James Rowe
24e187891f
OpenGL Rasterizer: Update to use the new cache
2017-12-23 16:10:28 -07:00
James Rowe
e5adb6a26b
OpenGL Cache: Add the rest of the Cache methods
...
Fills in the rasterizer cache methods using the helper methods added in
the previous commits.
2017-12-23 16:10:27 -07:00
James Rowe
81ea32d1e0
OpenGL Cache: Refactor Surface Cache interface
...
Changes the public interface of the surface cache to make it easier to
use. Reintroduces the cached page count cached pages that was removed in
an earlier commit.
2017-12-23 16:10:27 -07:00
James Rowe
3e1cbb7d14
OpenGL Cache: Split CachedSurface
...
Breaks CachedSurface into two classes, the parameters used to create or
find a cached surface, and the actual cached surface. This also adds a
few helper methods for getting surfaces from cache
2017-12-23 16:10:27 -07:00
James Rowe
0b98b768f5
OpenGL Cache: Add surface utility functions
...
Separates creating and filling surfaces into static functions that
can be reused from the different RasterizerCache methods.
2017-12-23 16:10:26 -07:00
James Rowe
e9e2d444ef
OpenGL Cache: Optimize Morton Copy to copy in tiles
...
Compiles two lookup arrays of functions for the different
configurations of Morton Copy.
2017-12-23 16:10:26 -07:00
James Rowe
160ac25527
OpenGL State: Change setters so they don't directly write to curstate
2017-12-23 16:10:25 -07:00
James Rowe
c821c14908
Settings: Change resolution scaling to an integer instead of a float
2017-12-23 16:10:25 -07:00
Dwayne Slater
fcc141a327
Maintain the PICA's 8 bits of color precision when using the interpolated primary color
...
This matches the software renderer by using round.
The actual hardware rounds the results up instead of flooring.
2017-11-29 16:49:04 -05:00
Dwayne Slater
350082ab75
Fix logic ops not being enabled in the OpenGL renderer
2017-11-29 16:30:19 -05:00
wwylele
47c0c87c47
video_core: clean format warnings
2017-11-01 12:35:32 +02:00
Dragios
520929dd6d
Fix typo for -Wunused-local-typedefs
2017-10-22 15:56:50 +08:00
Huw Pascoe
a13ab958cb
Fixed type conversion ambiguity
2017-09-30 09:34:35 +01:00
Huw Pascoe
6a110ac5f5
Fixed framebuffer warning
2017-09-17 11:57:06 +01:00
Yuri Kunde Schlesner
699c920991
Merge pull request #2900 from wwylele/clip-2
...
PICA: implement custom clip plane
2017-09-16 10:23:00 +02:00
bunnei
ff4941fb3a
Merge pull request #2914 from wwylele/fresnel-fix
...
pica/lighting: only apply Fresnel factor for the last light
2017-09-05 10:00:49 -04:00
wwylele
12fbc8c8df
pica/lighting: only apply Fresnel factor for the last light
2017-09-03 08:22:03 +03:00
wwylele
e2c41a5891
video_core: report telemetry for gas mode
2017-08-31 12:54:17 +03:00
bunnei
f0e461bf6f
Merge pull request #2891 from wwylele/sw-bump
...
SwRasterizer/Lighting: implement bump mapping
2017-08-30 21:07:30 -04:00
wwylele
addbcd5784
gl_rasterizer: implement custom clip plane
2017-08-25 07:26:45 +03:00
wwylele
17c6104d2a
gl_rasterizer/lighting: more accurate CP formula
2017-08-22 09:34:44 +03:00
wwylele
5a4af616c6
gl_shader_gen: simplify and clarify the depth transformation between vertex shader and fragment shader
2017-08-21 08:03:07 +03:00
wwylele
1eca380886
gl_rasterizer: add clipping plane z<=0 defined in PICA
2017-08-21 08:03:07 +03:00
wwylele
686fb3e78c
gl_shader_gen: don't call SampleTexture when bump map is not used
2017-08-11 18:35:00 +03:00
Sebastian Valle
c6a2e519ef
Merge pull request #2816 from wwylele/proctex-lutlutlut
...
gl_rasterizer: use texture buffer for proctex LUT
2017-07-22 23:03:48 -05:00
Sebastian Valle
e646bd902d
Merge pull request #2834 from wwylele/depth-enable-fix
...
gl_rasterizer_cache: fix using_depth_fb
2017-07-22 23:02:59 -05:00
bunnei
df8b9863f9
telemetry: Log performance, configuration, and system data.
2017-07-17 21:32:28 -04:00
wwylele
8482933db8
gl_rasterizer: use texture buffer for proctex LUT
2017-07-01 11:02:48 +03:00
wwylele
8978ecb09c
gl_rasterizer: use texture buffer for fog LUT
2017-06-22 20:41:00 +03:00
wwylele
f1e377f57e
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
2017-06-22 17:47:46 +03:00
wwylele
457659fe01
gl_state: reset 1d textures
2017-06-21 23:13:06 +03:00
wwylele
42f7ca7412
gl_rasterizer: fix glGetUniformLocation type
2017-06-21 23:13:06 +03:00
wwylele
be9e952bdc
gl_rasterizer: manage texture ids in one place
2017-06-21 23:13:06 +03:00
wwylele
ab60414122
gl_rasterizer/lighting: fix LUT interpolation
2017-06-21 23:13:06 +03:00
wwylele
5a454173a8
gl_rasterizer/lighting: use the formula from the paper for germetic factor
2017-06-18 10:29:02 +03:00