From 84bfec136a7b57d11535fda96fc3b051c93e204b Mon Sep 17 00:00:00 2001 From: bkaradzic Date: Fri, 5 Apr 2013 20:40:50 -0700 Subject: [PATCH] Removed some HLSL intrinsic from .sc shaders in favor of GLSL. Fixed varying.def parsing. --- examples/common/shaderlib.sh | 10 +++++----- src/bgfx_shader.sh | 13 +++++++++---- tools/bin/shaderc.exe | Bin 1086464 -> 1086464 bytes tools/shaderc/shaderc.cpp | 2 +- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/examples/common/shaderlib.sh b/examples/common/shaderlib.sh index 98a41ba10..08a5447aa 100644 --- a/examples/common/shaderlib.sh +++ b/examples/common/shaderlib.sh @@ -181,8 +181,8 @@ vec4 luma(vec4 _rgba) vec3 conSatBri(vec3 _rgb, vec3 _csb) { vec3 rgb = _rgb * _csb.z; - rgb = lerp(luma(rgb), rgb, _csb.y); - rgb = lerp(vec3_splat(0.5), rgb, _csb.x); + rgb = mix(luma(rgb), rgb, _csb.y); + rgb = mix(vec3_splat(0.5), rgb, _csb.x); return rgb; } @@ -219,7 +219,7 @@ vec3 blendOverlay(vec3 _base, vec3 _blend) { vec3 lt = 2.0 * _base * _blend; vec3 gte = 1.0 - 2.0 * (1.0 - _base) * (1.0 - _blend); - return lerp(lt, gte, step(vec3_splat(0.5), _base) ); + return mix(lt, gte, step(vec3_splat(0.5), _base) ); } vec4 blendOverlay(vec4 _base, vec4 _blend) @@ -239,7 +239,7 @@ vec4 packFloatToRgba(float _value) { const vec4 shift = vec4(256 * 256 * 256, 256 * 256, 256, 1.0); const vec4 mask = vec4(0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0); - vec4 comp = frac(_value * shift); + vec4 comp = fract(_value * shift); comp -= comp.xxyz * mask; return comp; } @@ -252,7 +252,7 @@ float unpackRgbaToFloat(vec4 _rgba) float random(vec2 _uv) { - return frac(sin(dot(_uv.xy, vec2(12.9898, 78.233) ) ) * 43758.5453); + return fract(sin(dot(_uv.xy, vec2(12.9898, 78.233) ) ) * 43758.5453); } #endif // __SHADERLIB_SH__ diff --git a/src/bgfx_shader.sh b/src/bgfx_shader.sh index b06b8a6fd..8dd447962 100644 --- a/src/bgfx_shader.sh +++ b/src/bgfx_shader.sh @@ -11,6 +11,8 @@ #if BGFX_SHADER_LANGUAGE_HLSL # define dFdx(_x) ddx(_x) # define dFdy(_y) ddy(-_y) +# define inversesqrt(_x) rsqrt(_x) +# define fract(_x) frac(_x) # if BGFX_SHADER_LANGUAGE_HLSL > 3 struct BgfxSampler2D @@ -114,8 +116,8 @@ bvec3 lessThan(vec3 _a, vec3 _b) { return _a < _b; } bvec4 lessThan(vec4 _a, vec4 _b) { return _a < _b; } bvec2 lessThanEqual(vec2 _a, vec2 _b) { return _a <= _b; } -bvec2 lessThanEqual(vec3 _a, vec3 _b) { return _a <= _b; } -bvec2 lessThanEqual(vec4 _a, vec4 _b) { return _a <= _b; } +bvec3 lessThanEqual(vec3 _a, vec3 _b) { return _a <= _b; } +bvec4 lessThanEqual(vec4 _a, vec4 _b) { return _a <= _b; } bvec2 greaterThan(vec2 _a, vec2 _b) { return _a > _b; } bvec3 greaterThan(vec3 _a, vec3 _b) { return _a > _b; } @@ -145,8 +147,6 @@ vec4 mod(vec4 _a, vec4 _b) { return _a - _b * floor(_a / _b); } #elif BGFX_SHADER_LANGUAGE_GLSL # define atan2(_x, _y) atan(_x, _y) -# define frac(_x) fract(_x) -# define lerp(_x, _y, _t) mix(_x, _y, _t) # define mul(_a, _b) ( (_a) * (_b) ) # define saturate(_x) clamp(_x, 0.0, 1.0) # define SAMPLER2D(_name, _reg) uniform sampler2D _name @@ -160,6 +160,11 @@ vec3 instMul(vec3 _vec, mat3 _mtx) { return mul(_vec, _mtx); } vec3 instMul(mat3 _mtx, vec3 _vec) { return mul(_mtx, _vec); } vec4 instMul(vec4 _vec, mat4 _mtx) { return mul(_vec, _mtx); } vec4 instMul(mat4 _mtx, vec4 _vec) { return mul(_mtx, _vec); } + +float rcp(float _a) { return 1.0/_a; } +vec2 rcp(vec2 _a) { return vec2(1.0)/_a; } +vec3 rcp(vec3 _a) { return vec3(1.0)/_a; } +vec4 rcp(vec4 _a) { return vec4(1.0)/_a; } #endif // BGFX_SHADER_LANGUAGE_HLSL uniform vec4 u_viewRect; diff --git a/tools/bin/shaderc.exe b/tools/bin/shaderc.exe index 9f78072e16ef1f56892efcf9330733ef4d8cfb0f..e033cd7c8fdf7ce60d05ca9cdb6cb0a778cab338 100644 GIT binary patch delta 29784 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 delta 29665 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

K%~##BQ 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 diff --git a/tools/shaderc/shaderc.cpp b/tools/shaderc/shaderc.cpp index fae0a38d0..39c5e03bf 100644 --- a/tools/shaderc/shaderc.cpp +++ b/tools/shaderc/shaderc.cpp @@ -1499,7 +1499,7 @@ int main(int _argc, const char* _argv[]) varyingMap.insert(std::make_pair(var.m_name, var) ); } - parse = bx::strnl(parse); + parse = bx::strnl(eol); } }