Commit graph

6882 commits

Author SHA1 Message Date
bunnei
7bac11c61b Merge pull request #1196 from linkmauve/khr_debug
Add optional GL_KHR_debug support
2016-01-12 22:54:52 -05:00
Lioncash
4dcc5fe6ab video_core: Make the renderer global a unique_ptr 2015-12-30 08:52:01 -05:00
Lioncash
d70ea5b6aa swrasterizer: Add missing override specifier 2015-12-29 18:35:38 -05:00
Yuri Kunde Schlesner
b7109a1113 VideoCore: Sync state after changing rasterizers
This fixes various bugs that appear in the HW rasterizer after switching
between it and the SW one during emulation.
2015-12-20 17:37:15 -08:00
Yuri Kunde Schlesner
10a89e10ca Merge pull request #1267 from yuriks/flipped-framebuffer
OpenGL: Flip framebuffers during transfer rather than when rendering
2015-12-09 20:35:15 -08:00
bunnei
0545d2f2f3 Merge pull request #1269 from Subv/triangle_fan
GPU/PrimitiveAssembler: Fixed drawing triangle fans.
2015-12-08 10:27:40 -05:00
Yuri Kunde Schlesner
102d39fe20 VideoCore: Unify interface to OpenGL and SW rasterizers
This removes explicit checks sprinkled all over the codebase to instead
just have the SW rasterizer expose an implementation with no-ops for
most operations.
2015-12-07 20:20:38 -08:00
Yuri Kunde Schlesner
192829165a VideoCore: Rename HWRasterizer methods to be less confusing 2015-12-06 19:08:37 -08:00
Yuri Kunde Schlesner
c2526d440e OpenGL: Rename cache functions to better match what they actually do 2015-12-06 17:02:52 -08:00
Subv
c94a1a0375 GPU/PrimitiveAssembler: Fixed drawing triangle fans.
It was skipping the second vertex assignment and using uninitialized garbage when assembling the corresponding triangle.
2015-12-06 10:48:05 -05:00
Yuri Kunde Schlesner
30c70c905f OpenGL: Flip framebuffers during transfer rather than when rendering 2015-12-04 22:23:39 -08:00
Yuri Kunde Schlesner
8e478d8b99 OpenGL: Add support for glFrontFace in the state tracker 2015-12-04 21:58:26 -08:00
Yuri Kunde Schlesner
7b9807c835 PICA: Properly emulate 1-stage delay in the combiner buffer
This was discovered and verified by @fincs. The tev combiner buffer
actually lags behind by one stage, meaning stage 1 reads the initial
color, stage 2 reads stage 0's output, and so on.

Fixes character portraits in Fire Emblem: Awakening and world textures
in Zelda: ALBW. Closes #1140.
2015-11-30 22:45:18 -08:00
bunnei
4cbe626fc7 renderer_opengl: Fix uniform issues introduced with kemenaran/avoid-explicit-uniform-location. 2015-11-25 22:33:24 -05:00
Pierre de La Morinerie
1c196456f0 Use regular uniform location
The support for GL_ARB_explicit_uniform_location is not that good
(53% according to http://feedback.wildfiregames.com/report/opengl/feature/GL_ARB_explicit_uniform_location).

This fix the shader compilation on Intel HD 4000 (#1222).
2015-11-25 11:56:11 +01:00
Subv
9acdb1e7f2 FragShader: Use an UBO instead of several individual uniforms 2015-11-18 21:03:56 -05:00
Subv
b797ef4d9a GPU/Loaders: Log an error when a loader tries to load from a component beyond the available ones (12).
Related to #1170
2015-11-09 21:16:11 -05:00
Emmanuel Gil Peyrot
705dd2b552 OpenGL: Log GL_KHR_debug messages we receive
This allows the driver to communicate errors, warnings and improvement
suggestions about our usage of the API.
2015-10-24 02:30:51 +01:00
bunnei
b7b11eb5e7 gl_shader_gen: Use explicit locations for vertex shader attributes. 2015-10-21 22:29:56 -04:00
bunnei
1eb1fd06d1 gl_shader_gen: Optimize code for AppendAlphaTestCondition.
- Also add a comment to AppendColorCombiner.
2015-10-21 22:29:56 -04:00
bunnei
7bad07b3ef gl_rasterizer: Define enum types for each vertex texcoord attribute. 2015-10-21 21:59:47 -04:00
bunnei
4175a09b7d gl_shader_gen: Various cleanups to shader generation. 2015-10-21 21:59:44 -04:00
bunnei
2fd9b1999f gl_rasterizer: Use MMH3 hash for shader cache hey.
- Includes a check to confirm no hash collisions.
2015-10-21 21:58:59 -04:00
bunnei
61b33d7266 gl_shader_gen: Require explicit uniform locations.
- Fixes uniform issue on AMD.
2015-10-21 21:54:56 -04:00
bunnei
aa1dec1953 gl_shader_gen: Rename 'o' to 'attr' in vertex/fragment shaders. 2015-10-21 21:53:19 -04:00
bunnei
3ed0610e5d gl_shader_gen: AppendAlphaModifier default should be 0.0, not vec4(0.0). 2015-10-21 21:53:18 -04:00
bunnei
e69743a943 gl_shader_gen: Fix bug where TEV stage outputs should be clamped. 2015-10-21 21:53:18 -04:00
bunnei
589d3e2e20 gl_rasterizer: Add documentation to ShaderCacheKey. 2015-10-21 21:53:17 -04:00
bunnei
06d9c2795c gl_shader_gen: Add additional function documentation. 2015-10-21 21:53:17 -04:00
bunnei
711a23b8ca gl_shader_util: Cleanup header file + add docstring. 2015-10-21 21:53:16 -04:00
bunnei
d8eca2f795 gl_shader_gen: Various cleanups + moved TEV stage generation to its own function. 2015-10-21 21:53:16 -04:00
bunnei
eefabd6b7d renderer_opengl: Refactor shader generation/caching to be more organized + various cleanups. 2015-10-21 21:53:14 -04:00
bunnei
44a1dcc088 gl_rasterizer: Move logic for creating ShaderCacheKey to a static function. 2015-10-21 21:53:05 -04:00
bunnei
05e11e151d gl_shader_util: Use vec3 constants for AppendColorCombiner. 2015-10-21 21:51:24 -04:00
bunnei
a81772552c gl_rasterizer: Fix typo in uploading TEV const color uniforms. 2015-10-21 21:51:24 -04:00
bunnei
9722d39bc5 gl_shader_util: Fix precision bug with alpha testing.
- Alpha testing is not done with float32 precision, this makes the HW renderer match the SW renderer.
2015-10-21 21:51:23 -04:00
Subv
8733dd568d Initial implementation of fragment shader generation with caching. 2015-10-21 21:51:23 -04:00
Emmanuel Gil Peyrot
b0c7762520 CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls.
The LOG_* function itself already appends one.
2015-10-09 22:14:56 +01:00
Rohit Nirmal
c157d4ddd6 Silence -Wsign-compare warnings. 2015-10-06 22:16:15 -05:00
Martin Lindhe
b36b9d6923 fix some xcode 7.0 warnings 2015-09-29 23:11:09 +02:00
Lioncash
08147474cb general: Silence some warnings when using clang 2015-09-16 08:51:53 -04:00
Lioncash
2cd98a45cb video_core: Reorganize headers 2015-09-11 07:31:15 -04:00
Lioncash
c95206abdd video_core: Remove unnecessary includes from headers 2015-09-11 00:10:03 -04:00
bunnei
4d6cd8e7b4 Merge pull request #1133 from lioncash/emplace-back
gl_rasterizer: Replace push_back calls with emplace_back in AddTriangle
2015-09-10 15:07:06 -04:00
bunnei
dc51bb8df1 Merge pull request #1136 from lioncash/proto
renderer_opengl: Remove unimplemented function declaration
2015-09-10 11:29:33 -04:00
Lioncash
a56b8437e6 renderer_opengl: Remove unimplemented function declaration 2015-09-10 10:45:44 -04:00
Lioncash
1d7a9c8752 video_core: Remove unused variables 2015-09-10 10:26:21 -04:00
Lioncash
b69c9fd82b gl_rasterizer: Replace push_back calls with emplace_back in AddTriangle 2015-09-10 00:20:30 -04:00
aroulin
964fa561c5 Shader JIT: Use SCALE constant from emitter 2015-09-07 16:50:28 +02:00
aroulin
f588077bbb Shader: Fix size_t to int casts of register offsets 2015-09-07 16:50:28 +02:00