Commit Graph

62 Commits

Author SHA1 Message Date
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
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
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
a526fc5f92 ubo streaming 2013-01-25 13:20:42 +01:00
cf11f0ea72 clear uniform cache on startup 2013-01-21 15:43:04 +01:00
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
6401a18143 remove texture sampler from uniform list 2013-01-19 00:12:02 +01:00
3054d36534 use glBindFragDataLocation instead of glDrawBuffer 2013-01-17 11:16:12 +01:00
bb200acdd8 also don't search in the shader cache if the shader isn't changed 2013-01-15 23:42:24 +01:00
687d74e6c2 only change shader if needed 2013-01-15 14:22:40 +01:00
ff889c0e65 use attrib pointers in nativeVertexFormat 2013-01-14 22:59:08 +01:00
5fe3def64c videoConfig cleanup 2013-01-14 20:00:33 +01:00
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
2838077313 fix warnings 2013-01-11 21:24:59 +01:00
60b8e4fb1c vertex shader for texture converter 2013-01-11 11:59:42 +01:00
b38b62afc6 remove glsl binding support. convert every shader to version 130 2013-01-02 16:56:08 +01:00
c2898748ac bind locations _before_ link program, fix dest alpha 2012-12-31 02:34:27 +01:00
d9f3fc4495 fix ubo for intel cards (also amd?) 2012-12-28 17:06:08 +01:00
1a8005d948 set ProgramShaderCache program format correctly. 2012-10-09 23:56:00 -05:00
210ecad15f let us try normal c++ static init instead... 2012-10-09 23:56:00 -05:00
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
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
108722bed0 oops, forgot to make sure the gl program is actually free'd. 2012-10-09 23:54:18 -05:00
4c1fef8f98 refactor ProgramShaderCache::PCacheEntry 2012-10-09 23:54:18 -05:00
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
31a8424bcc fix formatting uglies introduced in glsl-master branch 2012-10-09 23:54:17 -05:00
c4e7a288e5 Add in the Windows fix. 2012-10-09 23:43:22 -05:00
5c486587a6 Write all shaders to disk on emulator stop instead of constantly. Also change pair from u64 to u32. 2012-10-09 23:43:22 -05:00
4eb227bd4c If user doesn't compile with glew 1.6, cut out program binaries so everything still compiles. 2012-10-09 23:43:22 -05:00
7c91476650 Missed a if, don't want people crashing now do we? 2012-10-09 23:42:41 -05:00
9996f27120 Give OSX users more of a chance of supporting Single pass DSB in the future. 2012-10-09 23:42:41 -05:00
d012c75005 Implement Program shaders cache. Seems to reduce a small amount of stuttering when F-Zero starts. Did it because I can :| 2012-10-09 23:42:41 -05:00
7cb3d86e31 Add a define back so we work without GLEW 1.6, Also I missed a line when I was fixing binding sampler locations last night when I was tired. 2012-10-09 23:42:40 -05:00
1aad2e9e56 There we go, actually found the issue. 2012-10-09 23:42:40 -05:00
6759ee701d This thing fails when we don't support binding. Not 100% sure why I need to set this multiple times. 2012-10-09 23:42:40 -05:00
9c09e1973a Some shader programs don't come with Vertex shaders attached, don't try to bind a Vertex Uniform block then. 2012-10-09 23:42:40 -05:00
f8d0c28e53 Set Sampler values at program make time instead of every frame. Fix an issue when The user had UBO support but not Binding support. 2012-10-09 23:42:40 -05:00
ddd4360d6d Only delete this buffer if we support it. 2012-10-09 23:42:39 -05:00
7aad45658e Add a GUI option to use GLSL shaders. Also fix a small typo. 2012-10-09 23:42:39 -05:00
076c1a5aa7 Make sure not to try and bind UBO locations when it isn't supported 2012-10-09 23:41:49 -05:00
ba12c0b4f5 Instead of querying the vertex attribute location. Let's bind it to where CG expects it to be as well. Was causing problems when we were trying to activate the components below and they weren't available. This fixes cubivore with GLSL shader. Also any other game that uses 3 normal pointers. 2012-10-09 23:41:48 -05:00
d70726b035 glMapBuffer was slow, go back to glBufferSubData, single combined ps/vs ubo now 2012-10-09 23:41:48 -05:00
d9117ab6a1 try combining vs/ps ubo 2012-10-09 23:41:48 -05:00
e641ede232 make use of glMapBuffer to set ubo data 2012-10-09 23:41:48 -05:00
8e80771670 fix stupid indentation 2012-10-09 23:41:48 -05:00
73a29bf6a1 have separate variables/functions for VS/PS ubo stuff, array was confusing. 2012-10-09 23:41:48 -05:00
a809feae1a Disable UBO buffer generation if hardware doesn't support it. 2012-10-09 23:41:48 -05:00
3bcec51334 More coding style fixes because I suck at sed 2012-10-09 23:41:48 -05:00
3c6d0fc710 8 spaces indentation -> tabs 2012-10-09 23:41:48 -05:00
a304af75fd Make this pretty 2012-10-09 23:41:06 -05:00