Commit Graph

87 Commits

Author SHA1 Message Date
NeoBrainX
4e9c3db545 OSX build fix. 2013-03-29 15:03:16 +01:00
NeoBrainX
41c4108ce6 OpenGL: Reimplement shader uid debugging. 2013-03-29 14:56:01 +01:00
NeoBrainX
3253603ae7 Merge 'master' into shader-uids-awesome.
Conflicts:
	Source/Core/VideoCommon/Src/LightingShaderGen.cpp
	Source/Core/VideoCommon/Src/PixelShaderGen.cpp
	Source/Core/VideoCommon/Src/PixelShaderGen.h
	Source/Core/VideoCommon/Src/PixelShaderManager.cpp
	Source/Core/VideoCommon/Src/VertexShaderGen.cpp
	Source/Core/VideoCommon/Src/VertexShaderGen.h
	Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
	Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.h
	Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp
	Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp
	Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.h
2013-03-26 22:21:19 +01:00
degasus
3d5e0a6d3d move ogl-only settings into backend 2013-03-25 15:14:24 +01:00
degasus
7514b41966 GLSL: fix msaa egdes
MSAA is a optimiztion to execute the fragment shader just once per pixel instead per sample.
It sounds great, but has a big issue: At edges where the center isn't in the polygon, the
fragment would still be executed, but still with the center of the pixel as position.
So if some calculations aren't allowed outside the polygon, the result would be invalid.

But the nice one: we can give a hint to each input to be choosen from a valid pixel,
so now every pixel will be calculated with valid source.
2013-03-19 13:50:43 +01:00
degasus
106d7c37e8 GLSL: store and use exact ubo sizes 2013-03-17 16:49:42 +01:00
degasus
a6844d6b9e move shader error files in dolphin user directory 2013-03-07 20:37:28 +01:00
degasus
2bd7ba76b9 only report errors without debug_glsl 2013-03-07 20:26:56 +01:00
degasus
d19bc15d26 fix glsl140 workaround 2013-03-05 15:24:10 +01:00
degasus
e4f8d7b4c8 fix debug build 2013-03-04 10:20:55 +01:00
degasus
242d960781 increase buffer size
32M UBO, 16M Vertex, 2M Index
2013-02-22 10:25:38 +01:00
degasus
9f4a616f2e build fix 2013-02-14 19:04:52 +01:00
degasus
a0ef58418b workaround for buggy intel windows driver. revert this as soon as there are newer driver 2013-02-14 18:59:45 +01:00
degasus
0325e37bfb merge glsl headers into one place 2013-02-13 21:34:48 +01:00
degasus
21b83b436c create shader cache directoy 2013-02-13 16:50:56 +01:00
degasus
b3675d15dc enable shader cache again 2013-02-13 16:30:15 +01:00
degasus
398b37f371 fix ValidateShaderIDs 2013-02-13 15:16:32 +01:00
degasus
bbc292c210 merge Vertex and PixelShaderCache into ProgramShaderCache
this is the first step, uniform handling is still missing
2013-02-13 13:12:19 +01:00
degasus
f079b04a5d also check for glsl errors on linking, activation GLSL_DEBUG again (slowdown on shader compilation) 2013-02-07 12:47:41 +01:00
degasus
ef602fd643 workaround for glGetUniformLocation in efb2ram 2013-02-05 18:22:23 +01:00
degasus
76adc77fa6 bigger buffers 2013-02-05 18:01:27 +01:00
degasus
878bd7f26c implement streaming by bufferSubData, split upload and allocation in ringbuffer 2013-02-01 12:30:08 +01:00
degasus
30170575c8 create StreamBuffer class for ogl upload 2013-01-31 23:11:53 +01:00
degasus
4a463f4588 also add glBufferSubData for ubo upload
so osx start game, but everything is black
2013-01-31 13:00:15 +01:00
Ryan Houdek
fa45403557 Got to love that my server's cmake is half retarded. 2013-01-28 15:32:38 -06:00
Ryan Houdek
d94f3c4155 Stop using std::pair and std::map. Switch over to u64 and std::unordered_map. Provides a very small speed boost. 2013-01-28 15:18:54 -06:00
degasus
fd06342a97 set hint GL_STREAM_READ
it's wrong, but so we are guaranteed to get pinned memory.
it's slower for rendering, but faster for mapping.
2013-01-28 13:03:31 +01:00
Ryan Houdek
4fadb65259 Only check shader compilation status in debug or with DEBUG_GLSL defined. invalidate range on bindbufferrange since we don't care about what is in the range. Both give a performance boost for me. 2013-01-26 11:24:24 -06:00
degasus
a526fc5f92 ubo streaming 2013-01-25 13:20:42 +01:00
degasus
cf11f0ea72 clear uniform cache on startup 2013-01-21 15:43:04 +01:00
degasus
074f73c641 move utils texture to sampler 8+9
rasterfont tex will aways bound to samp8.
efb copy utils will be done in samp9.
2013-01-19 00:39:31 +01:00
degasus
6401a18143 remove texture sampler from uniform list 2013-01-19 00:12:02 +01:00
degasus
3054d36534 use glBindFragDataLocation instead of glDrawBuffer 2013-01-17 11:16:12 +01:00
degasus
bb200acdd8 also don't search in the shader cache if the shader isn't changed 2013-01-15 23:42:24 +01:00
degasus
687d74e6c2 only change shader if needed 2013-01-15 14:22:40 +01:00
degasus
ff889c0e65 use attrib pointers in nativeVertexFormat 2013-01-14 22:59:08 +01:00
degasus
5fe3def64c videoConfig cleanup 2013-01-14 20:00:33 +01:00
degasus
c3aafc77b3 upload complete uniform buffer at once
this is the way of dx11. it would upload more per draw, but uses less calls.
will be faster if many uniforms are changed, but slower else
2013-01-14 13:58:11 +01:00
degasus
2838077313 fix warnings 2013-01-11 21:24:59 +01:00
degasus
60b8e4fb1c vertex shader for texture converter 2013-01-11 11:59:42 +01:00
degasus
b38b62afc6 remove glsl binding support. convert every shader to version 130 2013-01-02 16:56:08 +01:00
degasus
c2898748ac bind locations _before_ link program, fix dest alpha 2012-12-31 02:34:27 +01:00
degasus
d9f3fc4495 fix ubo for intel cards (also amd?) 2012-12-28 17:06:08 +01:00
Shawn Hoffman
1a8005d948 set ProgramShaderCache program format correctly. 2012-10-09 23:56:00 -05:00
Shawn Hoffman
210ecad15f let us try normal c++ static init instead... 2012-10-09 23:56:00 -05:00
Ryan Houdek
03b09bed5d Get the program binary type correctly or else ATI makes massive (~400MB) shader caches. Also, don't need the line in the PixelShaderGen. 2012-10-09 23:56:00 -05:00
Ryan Houdek
2e15440896 Add support for Dual source blending to older ATI cards that don't support 420pack but do support GL_ARB_blend_func_extended. This is more proper as well anyways. 2012-10-09 23:56:00 -05:00
Shawn Hoffman
108722bed0 oops, forgot to make sure the gl program is actually free'd. 2012-10-09 23:54:18 -05:00
Shawn Hoffman
4c1fef8f98 refactor ProgramShaderCache::PCacheEntry 2012-10-09 23:54:18 -05:00
Shawn Hoffman
aaa405c973 Checking GLEW_VERSION_4_0 is superfluous since we check GL_ARB_get_program_binary, and it's a runtime variable anyways. 2012-10-09 23:54:18 -05:00