Change descriptor declarations

Use INPUT and OUTPUT templates in shaders.

Co-authored-by: Lubosz Sarnecki <lubosz@gmail.com>
This commit is contained in:
Brad Davis 2018-10-27 21:18:44 -07:00 committed by Karol Suprynowicz
parent 60ec906637
commit 9e3acabb29
130 changed files with 576 additions and 536 deletions

View file

@ -128,18 +128,17 @@ macro(AUTOSCRIBE_SHADER)
AUTOSCRIBE_APPEND_QRC("${SHADER_COUNT}/name" "${SHADER_NAME_FILE}")
if (USE_GLES)
set(SPIRV_CROSS_ARGS --version 310es)
AUTOSCRIBE_PLATFORM_SHADER("310es")
AUTOSCRIBE_PLATFORM_SHADER("310es/stereo")
else()
set(SPIRV_CROSS_ARGS --version 320es)
AUTOSCRIBE_PLATFORM_SHADER("320es")
AUTOSCRIBE_PLATFORM_SHADER("320es/stereo")
elseif(APPLE)
set(SPIRV_CROSS_ARGS --version 410 --no-420pack-extension)
AUTOSCRIBE_PLATFORM_SHADER("410")
AUTOSCRIBE_PLATFORM_SHADER("410/stereo")
if (NOT APPLE)
set(SPIRV_CROSS_ARGS --version 450)
AUTOSCRIBE_PLATFORM_SHADER("450")
AUTOSCRIBE_PLATFORM_SHADER("450/stereo")
endif()
else()
set(SPIRV_CROSS_ARGS --version 450)
AUTOSCRIBE_PLATFORM_SHADER("450")
AUTOSCRIBE_PLATFORM_SHADER("450/stereo")
endif()
string(CONCAT SHADER_LIST "${SHADER_LIST}" "${SHADER_NAME} = ${SHADER_COUNT},\n")
@ -408,11 +407,11 @@ macro(AUTOSCRIBE_SHADER_LIBS)
list(APPEND QT_RESOURCES_FILE ${CMAKE_CURRENT_BINARY_DIR}/shaders.qrc)
list(APPEND AUTOSCRIBE_SHADER_HEADERS ${AUTOSCRIBE_HEADER_DIR}/mono.glsl ${AUTOSCRIBE_HEADER_DIR}/stereo.glsl)
list(APPEND AUTOSCRIBE_SHADER_HEADERS ${AUTOSCRIBE_HEADER_DIR}/450/header.glsl ${AUTOSCRIBE_HEADER_DIR}/410/header.glsl ${AUTOSCRIBE_HEADER_DIR}/310es/header.glsl)
list(APPEND AUTOSCRIBE_SHADER_HEADERS ${AUTOSCRIBE_HEADER_DIR}/450/header.glsl ${AUTOSCRIBE_HEADER_DIR}/410/header.glsl ${AUTOSCRIBE_HEADER_DIR}/320es/header.glsl)
source_group("Shader Headers" FILES ${AUTOSCRIBE_HEADER_DIR}/mono.glsl ${AUTOSCRIBE_HEADER_DIR}/stereo.glsl)
source_group("Shader Headers\\450" FILES ${AUTOSCRIBE_HEADER_DIR}/450/header.glsl)
source_group("Shader Headers\\410" FILES ${AUTOSCRIBE_HEADER_DIR}/410/header.glsl)
source_group("Shader Headers\\310es" FILES ${AUTOSCRIBE_HEADER_DIR}/310es/header.glsl)
source_group("Shader Headers\\320es" FILES ${AUTOSCRIBE_HEADER_DIR}/320es/header.glsl)
list(APPEND AUTOSCRIBE_SHADER_LIB_SRC ${AUTOSCRIBE_SHADER_HEADERS})
list(APPEND AUTOSCRIBE_SHADER_LIB_SRC ${CMAKE_CURRENT_BINARY_DIR}/ShaderEnums.h ${CMAKE_CURRENT_BINARY_DIR}/ShaderEnums.cpp)

View file

@ -2,13 +2,13 @@ struct TextureData {
ivec2 textureSize;
};
LAYOUT_STD140(binding=0) uniform textureDataBuffer {
UNIFORM_BUFFER(0, textureDataBuffer) {
TextureData textureData;
};
LAYOUT(binding=0) uniform sampler2D colorMap;
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
TEXTURE(0, sampler2D, colorMap);
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
void main(void) {
ivec2 texCoord = ivec2(floor(varTexCoord0 * vec2(textureData.textureSize)));

View file

@ -13,15 +13,15 @@
<@if not HIFI_USE_FORWARD@>
<@include DeferredBufferWrite.slh@>
<@else@>
layout(location=0) out vec4 _fragColor0;
OUTPUT(0, vec4, _fragColor0);
<@endif@>
<@include paintStroke.slh@>
<$declarePolyLineBuffers()$>
<@include CullFace.slh@>
LAYOUT(binding=0) uniform sampler2D _texture;
// the albedo texture
TEXTURE(0, sampler2D, originalTexture);
<@if not HIFI_USE_FORWARD@>
layout(location=0) in vec3 _normalWS;

View file

@ -11,10 +11,10 @@
//
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
INPUT(GPU_ATTR_COLOR, vec4, inColor);
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
<@include gpu/Color.slh@>
<@include gpu/Transform.slh@>
@ -24,11 +24,11 @@ layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
<$declarePolyLineBuffers()$>
<@if not HIFI_USE_FORWARD@>
layout(location=0) out vec3 _normalWS;
OUTPUT(0, vec3, _normalWS);
<@endif@>
layout(location=1) out vec2 _texCoord;
layout(location=2) out vec4 _color;
layout(location=3) out float _distanceFromCenter;
OUTPUT(1, vec2, _texCoord);
OUTPUT(2, vec4, _color);
OUTPUT(3, float, _distanceFromCenter);
void main(void) {
PolylineVertex vertex = getPolylineVertex(gl_VertexID / 2);
@ -53,20 +53,13 @@ void main(void) {
vec3 normalEye = normalize(posEye.xyz);
vec3 binormalEye = normalize(cross(normalEye, tangentEye));
// Workaround for Nvidia driver bug
posEye.x += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormalEye.x;
posEye.y += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormalEye.y;
posEye.z += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormalEye.z;
posEye.xyz += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormalEye;
<$transformEyeToClipPos(cam, posEye, gl_Position)$>
<@if not HIFI_USE_FORWARD@>
<$transformEyeToWorldDir(cam, normalEye, _normalWS)$>
<@endif@>
} else {
vec3 normal = vertex.normal.xyz;
position.xyz += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormal;
<$transformModelToClipPos(cam, obj, position, gl_Position)$>
<@if not HIFI_USE_FORWARD@>
<$transformModelToWorldDir(cam, obj, normal, _normalWS)$>
<@endif@>
}
}
}

View file

@ -14,7 +14,7 @@
<@include Fade.slh@>
<$declareFadeFragment()$>
layout(location=RENDER_UTILS_ATTR_POSITION_WS) in vec4 _positionWS;
INPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
<@endif@>
<@if not HIFI_USE_SHADOW@>
@ -35,26 +35,27 @@
<@endif@>
<@if HIFI_USE_FORWARD@>
layout(location=RENDER_UTILS_ATTR_POSITION_ES) in vec4 _positionES;
INPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
<@endif@>
layout(location=RENDER_UTILS_ATTR_POSITION_MS) in vec3 _positionMS;
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) in vec3 _normalWS;
INPUT(RENDER_UTILS_ATTR_POSITION_MS, vec4, _positionMS);
INPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
LAYOUT(binding=ENTITIES_TEXTURE_POLYVOX_XMAP) uniform sampler2D xMap;
LAYOUT(binding=ENTITIES_TEXTURE_POLYVOX_YMAP) uniform sampler2D yMap;
LAYOUT(binding=ENTITIES_TEXTURE_POLYVOX_ZMAP) uniform sampler2D zMap;
TEXTURE(ENTITIES_TEXTURE_POLYVOX_XMAP, sampler2D, xMap);
TEXTURE(ENTITIES_TEXTURE_POLYVOX_YMAP, sampler2D, yMap);
TEXTURE(ENTITIES_TEXTURE_POLYVOX_ZMAP, sampler2D, zMap);
struct PolyvoxParams {
vec4 voxelVolumeSize;
};
LAYOUT(binding=0) uniform polyvoxParamsBuffer {
UNIFORM_BUFFER(0, polyvoxParamsBuffer) {
PolyvoxParams params;
};
<@endif@>
<@if HIFI_USE_SHADOW or HIFI_USE_FORWARD@>
layout(location=0) out vec4 _fragColor0;
OUTPUT(0, vec4, _fragColor0);
<@endif@>
void main(void) {

View file

@ -10,8 +10,8 @@
//
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
<@include render-utils/ShaderConstants.h@>
@ -19,14 +19,14 @@ layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
<$declareStandardTransform()$>
<@if HIFI_USE_FADE@>
layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS;
OUTPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
<@endif@>
<@if not HIFI_USE_SHADOW@>
<@if HIFI_USE_FORWARD@>
layout(location=RENDER_UTILS_ATTR_POSITION_ES) out vec4 _positionES;
OUTPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
<@endif@>
layout(location=RENDER_UTILS_ATTR_POSITION_MS) out vec3 _positionMS;
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) out vec3 _normalWS;
OUTPUT(RENDER_UTILS_ATTR_POSITION_MS, vec4, _positionMS);
OUTPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
<@endif@>
void main(void) {
@ -44,7 +44,7 @@ void main(void) {
<@endif@>
<$transformModelToWorldDir(cam, obj, inNormal.xyz, _normalWS)$>
_positionMS = inPosition.xyz;
_positionMS = inPosition;
<@endif@>
<@if HIFI_USE_FADE@>
<$transformModelToWorldPos(obj, inPosition, _positionWS)$>

View file

@ -10,13 +10,13 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
LAYOUT(binding=0) uniform sampler2D colorMap;
TEXTURE(0, sampler2D, colorMap);
layout(location=0) in vec4 varColor;
layout(location=1) in vec2 varTexcoord;
INPUT(0, vec4, varColor);
INPUT(1, vec2, varTexcoord);
<@if HIFI_USE_FORWARD or HIFI_USE_SHADOW@>
layout(location=0) out vec4 _fragColor0;
OUTPUT(0, vec4, _fragColor0);
<@else@>
<@include DeferredBufferWrite.slh@>
<@endif@>

View file

@ -43,15 +43,15 @@ struct ParticleUniforms {
vec2 spare;
};
LAYOUT_STD140(binding=0) uniform particleBuffer {
UNIFORM_BUFFER(0, particleBuffer) {
ParticleUniforms particle;
};
layout(location=0) in vec3 inPosition;
layout(location=2) in vec2 inColor; // This is actual Lifetime + Seed
INPUT(0, vec3, inPosition);
INPUT(2, vec2, inColor); // This is actual Lifetime + Seed
layout(location=0) out vec4 varColor;
layout(location=1) out vec2 varTexcoord;
OUTPUT(0, vec4, varColor);
OUTPUT(1, vec2, varTexcoord);
float bezierInterpolate(float y1, float y2, float y3, float u) {
// https://en.wikipedia.org/wiki/Bezier_curve

View file

@ -17,11 +17,11 @@ struct DrawColorParams {
vec4 color;
};
LAYOUT(binding=0) uniform drawColorParamsBuffer {
UNIFORM_BUFFER(0, drawColorParamsBuffer) {
DrawColorParams params;
};
layout(location=0) out vec4 outFragColor;
OUTPUT(0, vec4, outFragColor);
void main(void) {
outFragColor = params.color;

View file

@ -13,18 +13,18 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
LAYOUT(binding=0) uniform sampler2D colorMap;
TEXTURE(0, sampler2D, colorMap);
struct DrawColorParams {
vec4 color;
};
LAYOUT(binding=0) uniform drawColorParams {
UNIFORM_BUFFER(0, drawColorParams) {
DrawColorParams params;
};
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
void main(void) {
outFragColor = texture(colorMap, varTexCoord0) * params.color;

View file

@ -25,11 +25,11 @@ struct TexCoordRectParams {
vec4 texcoordRect;
};
LAYOUT(binding=0) uniform texcoordRectBuffer {
UNIFORM_BUFFER(0, texcoordRectBuffer) {
TexCoordRectParams params;
};
layout(location=0) out vec2 varTexCoord0;
OUTPUT(0, vec2, varTexCoord0);
void main(void) {
const vec4 UNIT_QUAD[4] = vec4[4](

View file

@ -14,10 +14,10 @@
//
LAYOUT(binding=0) uniform sampler2D colorMap;
TEXTURE(0, sampler2D, colorMap);
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
void main(void) {
outFragColor = texture(colorMap, varTexCoord0);

View file

@ -15,10 +15,10 @@
<@include gpu/Color.slh@>
LAYOUT(binding=0) uniform sampler2D colorMap;
TEXTURE(0, sampler2D, colorMap);
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
void main(void) {
outFragColor = vec4(texture(colorMap, vec2(1.0 - varTexCoord0.x, varTexCoord0.y)).xyz, 1.0);

View file

@ -14,11 +14,11 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
LAYOUT(binding=0) uniform sampler2D colorMap;
TEXTURE(0, sampler2D, colorMap);
layout(location=0) in vec2 varTexCoord0;
INPUT(0, vec2, varTexCoord0);
layout(location=0) out vec4 outFragColor;
OUTPUT(0, vec4, outFragColor);
void main(void) {
outFragColor = vec4(texture(colorMap, varTexCoord0).xyz, 1.0);

View file

@ -18,7 +18,7 @@
<$declareStandardTransform()$>
layout(location=0) out vec2 varTexCoord0;
OUTPUT(0, vec2, varTexCoord0);
void main(void) {
const vec4 UNIT_QUAD[4] = vec4[4](

View file

@ -18,9 +18,9 @@
<$declareStandardTransform()$>
layout(location=0) in vec4 inPosition;
INPUT(0, vec4, inPosition);
layout(location=0) out vec3 varWorldPos;
OUTPUT(0, vec3, varWorldPos);
void main(void) {
// standard transform

View file

@ -13,7 +13,7 @@
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
layout(location=0) out vec2 varTexCoord0;
OUTPUT(0, vec2, varTexCoord0);
void main(void) {
const float depth = 1.0;

View file

@ -14,7 +14,7 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
layout(location=0) in vec4 inPosition;
INPUT(0, vec4, inPosition);
void main(void) {
gl_Position = inPosition;

View file

@ -18,7 +18,7 @@
<$declareStandardTransform()$>
layout(location=0) out vec2 varTexCoord0;
OUTPUT(0, vec2, varTexCoord0);
void main(void) {
const vec4 UNIT_QUAD[4] = vec4[4](

View file

@ -11,7 +11,7 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
layout(location=0) out vec4 outFragColor;
OUTPUT(0, vec4, outFragColor);
void main(void) {
outFragColor = vec4(1.0);

View file

@ -13,15 +13,15 @@
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
layout(location=GPU_ATTR_TANGENT) in vec4 inTangent;
layout(location=GPU_ATTR_SKIN_CLUSTER_INDEX) in ivec4 inSkinClusterIndex;
layout(location=GPU_ATTR_SKIN_CLUSTER_WEIGHT) in vec4 inSkinClusterWeight;
layout(location=GPU_ATTR_TEXCOORD1) in vec4 inTexCoord1;
layout(location=GPU_ATTR_TEXCOORD2) in vec4 inTexCoord2;
layout(location=GPU_ATTR_TEXCOORD3) in vec4 inTexCoord3;
layout(location=GPU_ATTR_TEXCOORD4) in vec4 inTexCoord4;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
INPUT(GPU_ATTR_COLOR, vec4, inColor);
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
INPUT(GPU_ATTR_TANGENT, vec4, inTangent);
INPUT(GPU_ATTR_SKIN_CLUSTER_INDEX, ivec4, inSkinClusterIndex);
INPUT(GPU_ATTR_SKIN_CLUSTER_WEIGHT, vec4, inSkinClusterWeight);
INPUT(GPU_ATTR_TEXCOORD1, vec4, inTexCoord1);
INPUT(GPU_ATTR_TEXCOORD2, vec4, inTexCoord2);
INPUT(GPU_ATTR_TEXCOORD3, vec4, inTexCoord3);
INPUT(GPU_ATTR_TEXCOORD4, vec4, inTexCoord4);
<@endif@>

View file

@ -13,7 +13,7 @@
<@include gpu/ShaderConstants.h@>
LAYOUT(binding=GPU_TEXTURE_MIP_CREATION_INPUT) uniform sampler2D texMap;
TEXTURE(GPU_TEXTURE_MIP_CREATION_INPUT, sampler2D, texMap);
in vec2 varTexCoord0;

View file

@ -16,7 +16,7 @@
#define TransformCamera _TransformCamera
LAYOUT_STD140(binding=GPU_BUFFER_TRANSFORM_CAMERA) uniform transformCameraBuffer {
UNIFORM_BUFFER(GPU_BUFFER_TRANSFORM_CAMERA, transformCameraBuffer) {
#ifdef GPU_TRANSFORM_IS_STEREO
#ifdef GPU_TRANSFORM_STEREO_CAMERA
TransformCamera _camera[2];
@ -32,10 +32,10 @@ LAYOUT_STD140(binding=GPU_BUFFER_TRANSFORM_CAMERA) uniform transformCameraBuffer
#ifdef GPU_TRANSFORM_IS_STEREO
#ifdef GPU_TRANSFORM_STEREO_CAMERA
#ifdef GPU_TRANSFORM_STEREO_CAMERA_ATTRIBUTED
layout(location=GPU_ATTR_STEREO_SIDE) in int _inStereoSide;
INPUT(GPU_ATTR_STEREO_SIDE, int, _inStereoSide);
#endif
layout(location=GPU_ATTR_V2F_STEREO_SIDE) flat out int _stereoSide;
FLAT_OUTPUT(GPU_ATTR_V2F_STEREO_SIDE, int, _stereoSide);
// In stereo drawcall mode Instances are drawn twice (left then right) hence the true InstanceID is the gl_InstanceID / 2
int gpu_InstanceID() {
@ -60,7 +60,7 @@ int gpu_InstanceID() {
#ifdef GPU_PIXEL_SHADER
#ifdef GPU_TRANSFORM_STEREO_CAMERA
layout(location=GPU_ATTR_V2F_STEREO_SIDE) flat in int _stereoSide;
FLAT_INPUT(GPU_ATTR_V2F_STEREO_SIDE, int, _stereoSide);
#endif
#endif
@ -117,10 +117,10 @@ struct TransformObject {
mat4 _modelInverse;
};
layout(location=GPU_ATTR_DRAW_CALL_INFO) in ivec2 _drawCallInfo;
INPUT(GPU_ATTR_DRAW_CALL_INFO, ivec2, _drawCallInfo);
#if defined(GPU_SSBO_TRANSFORM_OBJECT)
LAYOUT_STD140(binding=GPU_STORAGE_TRANSFORM_OBJECT) buffer transformObjectBuffer {
RESOURCE_BUFFER(GPU_STORAGE_TRANSFORM_OBJECT, transformObjectBuffer) {
TransformObject _object[];
};
TransformObject getTransformObject() {
@ -128,7 +128,7 @@ TransformObject getTransformObject() {
return transformObject;
}
#else
LAYOUT(binding=GPU_TEXTURE_TRANSFORM_OBJECT) uniform samplerBuffer transformObjectBuffer;
RESOURCE_BUFFER(GPU_TEXTURE_TRANSFORM_OBJECT, transformObjectBuffer);
TransformObject getTransformObject() {
int offset = 8 * _drawCallInfo.x;

View file

@ -38,7 +38,8 @@ struct HazeParams {
float hazeKeyLightAltitudeFactor;
};
LAYOUT_STD140(binding=GRAPHICS_BUFFER_HAZE_PARAMS) uniform hazeBuffer {
// See ShapePipeline::Slot::BUFFER in ShapePipeline.h
UNIFORM_BUFFER(GRAPHICS_BUFFER_HAZE_PARAMS, hazeBuffer) {
HazeParams hazeParams;
};

View file

@ -63,7 +63,7 @@ float getLightAmbientMapNumMips(LightAmbient l) { return l._ambientInfo.y; }
<@if N@>
LAYOUT(binding=GRAPHICS_BUFFER_LIGHT) uniform lightBuffer {
UNIFORM_BUFFER(GRAPHICS_BUFFER_LIGHT, lightBuffer) {
Light lightArray[<$N$>];
};
Light getLight(int index) {
@ -71,7 +71,7 @@ Light getLight(int index) {
}
<@else@>
LAYOUT(binding=GRAPHICS_BUFFER_KEY_LIGHT) uniform keyLightBuffer {
UNIFORM_BUFFER(GRAPHICS_BUFFER_KEY_LIGHT, keyLightBuffer) {
Light light;
};
Light getKeyLight() {
@ -87,7 +87,7 @@ Light getKeyLight() {
<@if N@>
LAYOUT(binding=GRAPHICS_BUFFER_AMBIENT_LIGHT) uniform lightAmbientBuffer {
UNIFORM_BUFFER(GRAPHICS_BUFFER_AMBIENT_LIGHT, lightAmbientBuffer) {
LightAmbient lightAmbientArray[<$N$>];
};
@ -96,7 +96,7 @@ LightAmbient getLightAmbient(int index) {
}
<@else@>
LAYOUT(binding=GRAPHICS_BUFFER_AMBIENT_LIGHT) uniform lightAmbientBuffer {
UNIFORM_BUFFER(GRAPHICS_BUFFER_AMBIENT_LIGHT, lightAmbientBuffer) {
LightAmbient lightAmbient;
};

View file

@ -67,7 +67,7 @@ struct Material {
};
<@endif@>
LAYOUT_STD140(binding=GRAPHICS_BUFFER_MATERIAL) uniform materialBuffer {
UNIFORM_BUFFER(GRAPHICS_BUFFER_MATERIAL, materialBuffer) {
Material _mat;
TexMapArray _texMapArray;
};

View file

@ -153,14 +153,14 @@ float fetchScatteringMap(vec2 uv) {
#else
<@if withAlbedo@>
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_ALBEDO) uniform sampler2D albedoMap;
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_ALBEDO, sampler2D, albedoMap);
vec4 fetchAlbedoMap(vec2 uv) {
return texture(albedoMap, uv, TAA_TEXTURE_LOD_BIAS);
}
<@endif@>
<@if withNormal@>
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_NORMAL) uniform sampler2D normalMap;
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_NORMAL, sampler2D, normalMap);
vec3 fetchNormalMap(vec2 uv) {
// unpack normal, swizzle to get into hifi tangent space with Y axis pointing out
vec2 t = 2.0 * (texture(normalMap, uv, TAA_TEXTURE_LOD_BIAS).rg - vec2(0.5, 0.5));
@ -170,35 +170,35 @@ vec3 fetchNormalMap(vec2 uv) {
<@endif@>
<@if withMetallic@>
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_METALLIC) uniform sampler2D metallicMap;
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_METALLIC, sampler2D, metallicMap);
float fetchMetallicMap(vec2 uv) {
return (texture(metallicMap, uv, TAA_TEXTURE_LOD_BIAS).r);
}
<@endif@>
<@if withEmissive@>
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_EMISSIVE_LIGHTMAP) uniform sampler2D emissiveMap;
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_EMISSIVE_LIGHTMAP, sampler2D, emissiveMap);
vec3 fetchEmissiveMap(vec2 uv) {
return texture(emissiveMap, uv, TAA_TEXTURE_LOD_BIAS).rgb;
}
<@endif@>
<@if withRoughness@>
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_ROUGHNESS) uniform sampler2D roughnessMap;
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_ROUGHNESS, sampler2D, roughnessMap);
float fetchRoughnessMap(vec2 uv) {
return (texture(roughnessMap, uv, TAA_TEXTURE_LOD_BIAS).r);
}
<@endif@>
<@if withOcclusion@>
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_OCCLUSION) uniform sampler2D occlusionMap;
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_OCCLUSION, sampler2D, occlusionMap);
float fetchOcclusionMap(vec2 uv) {
return texture(occlusionMap, uv).r;
}
<@endif@>
<@if withScattering@>
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_SCATTERING) uniform sampler2D scatteringMap;
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_SCATTERING, sampler2D, scatteringMap);
float fetchScatteringMap(vec2 uv) {
float scattering = texture(scatteringMap, uv, TAA_TEXTURE_LOD_BIAS).r; // boolean scattering for now
return max(((scattering - 0.1) / 0.9), 0.0);
@ -248,9 +248,9 @@ float fetchScatteringMap(vec2 uv) {
<$declareMaterialTexMapArrayBuffer()$>
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_EMISSIVE_LIGHTMAP) uniform sampler2D emissiveMap;
vec3 fetchLightMap(vec2 uv) {
vec2 lightmapParams = getTexMapArray()._lightmapParams;
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_EMISSIVE_LIGHTMAP, sampler2D, emissiveMap);
vec3 fetchLightmapMap(vec2 uv) {
vec2 lightmapParams = getTexMapArray()._lightmapParams.xy;
return (vec3(lightmapParams.x) + lightmapParams.y * texture(emissiveMap, uv).rgb);
}
<@endfunc@>

View file

@ -22,18 +22,18 @@
<@include graphics/Haze.slh@>
<@endif@>
LAYOUT(binding=GRAPHICS_TEXTURE_SKYBOX) uniform samplerCube cubeMap;
TEXTURE(GRAPHICS_TEXTURE_SKYBOX, samplerCube, cubeMap);
struct Skybox {
vec4 color;
};
LAYOUT(binding=GRAPHICS_BUFFER_SKYBOX_PARAMS) uniform skyboxBuffer {
UNIFORM_BUFFER(GRAPHICS_BUFFER_SKYBOX_PARAMS, skyboxBuffer) {
Skybox skybox;
};
layout(location=0) in vec3 _normal;
layout(location=0) out vec4 _fragColor;
INPUT(0, vec3, _normal);
OUTPUT(0, vec4, _fragColor);
void main(void) {
vec3 normal = normalize(_normal);

View file

@ -13,7 +13,7 @@
<@include gpu/Transform.slh@>
<$declareStandardTransform()$>
layout(location=0) out vec3 _normal;
OUTPUT(0, vec3, _normal);
void main(void) {
const float depth = 0.0;

View file

@ -11,10 +11,10 @@
<@include gpu/Noise.slh@>
<@include procedural/ShaderConstants.h@>
LAYOUT(binding=PROCEDURAL_TEXTURE_CHANNEL0) uniform sampler2D iChannel0;
LAYOUT(binding=PROCEDURAL_TEXTURE_CHANNEL1) uniform sampler2D iChannel1;
LAYOUT(binding=PROCEDURAL_TEXTURE_CHANNEL2) uniform sampler2D iChannel2;
LAYOUT(binding=PROCEDURAL_TEXTURE_CHANNEL3) uniform sampler2D iChannel3;
TEXTURE(PROCEDURAL_TEXTURE_CHANNEL0, sampler2D, iChannel0);
TEXTURE(PROCEDURAL_TEXTURE_CHANNEL1, sampler2D, iChannel1);
TEXTURE(PROCEDURAL_TEXTURE_CHANNEL2, sampler2D, iChannel2);
TEXTURE(PROCEDURAL_TEXTURE_CHANNEL3, sampler2D, iChannel3);
// DO NOT TOUCH
// This block does not follow our normal rules of always using a struct and
@ -24,7 +24,7 @@ LAYOUT(binding=PROCEDURAL_TEXTURE_CHANNEL3) uniform sampler2D iChannel3;
// comptability with existing procedural shaders that previously relied on these
// inputs as uniforms, not members of a UBO
LAYOUT_STD140(binding=PROCEDURAL_BUFFER_INPUTS) uniform standardInputsBuffer {
UNIFORM_BUFFER(0, standardInputsBuffer) {
// Offset 0
vec4 date;
// Offset 16, acts as vec4 for alignment purposes

View file

@ -12,18 +12,18 @@
//
<@include graphics/ShaderConstants.h@>
LAYOUT(binding=GRAPHICS_TEXTURE_SKYBOX) uniform samplerCube cubeMap;
TEXTURE(GRAPHICS_TEXTURE_SKYBOX, samplerCube, cubeMap);
struct Skybox {
vec4 color;
};
LAYOUT(binding=GRAPHICS_BUFFER_SKYBOX_PARAMS) uniform skyboxBuffer {
UNIFORM_BUFFER(GRAPHICS_BUFFER_SKYBOX_PARAMS, skyboxBuffer) {
Skybox skybox;
};
layout(location=0) in vec3 _normal;
layout(location=0) out vec4 _fragColor;
INPUT(0, vec3, _normal);
OUTPUT(0, vec4, _fragColor);
<@include procedural/ProceduralCommon.slh@>

View file

@ -11,12 +11,12 @@
<@func declareBlendshape(USE_NORMAL, USE_TANGENT)@>
#if !defined(GPU_SSBO_TRANSFORM_OBJECT)
LAYOUT(binding=GPU_RESOURCE_BUFFER_SLOT0_TEXTURE) uniform samplerBuffer blendshapeOffsetsBuffer;
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_TEXTURE, blendshapeOffsetsBuffer);
uvec4 getPackedBlendshapeOffset(int i) {
return floatBitsToUint(texelFetch(blendshapeOffsetsBuffer, i));
}
#else
LAYOUT_STD140(binding=GPU_RESOURCE_BUFFER_SLOT0_STORAGE) buffer blendshapeOffsetsBuffer {
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_STORAGE, blendshapeOffsetsBuffer) {
uvec4 _packedBlendshapeOffsets[];
};
uvec4 getPackedBlendshapeOffset(int i) {

View file

@ -12,16 +12,16 @@
<@include BloomApply.shared.slh@>
<@include render-utils/ShaderConstants.h@>
LAYOUT(binding=0) uniform sampler2D blurMap0;
LAYOUT(binding=1) uniform sampler2D blurMap1;
LAYOUT(binding=2) uniform sampler2D blurMap2;
TEXTURE(0, sampler2D, blurMap0);
TEXTURE(1, sampler2D, blurMap1);
TEXTURE(2, sampler2D, blurMap2);
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_BLOOM_PARAMS) uniform parametersBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_BLOOM_PARAMS, parametersBuffer) {
Parameters parameters;
};
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
void main(void) {
vec4 blur0 = texture(blurMap0, varTexCoord0);

View file

@ -12,13 +12,13 @@
<@include BloomThreshold.shared.slh@>
<@include render-utils/ShaderConstants.h@>
LAYOUT(binding=RENDER_UTILS_TEXTURE_BLOOM_COLOR) uniform sampler2D colorMap;
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_BLOOM_PARAMS) uniform parametersBuffer {
TEXTURE(RENDER_UTILS_TEXTURE_BLOOM_COLOR, sampler2D, colorMap);
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_BLOOM_PARAMS, parametersBuffer) {
Parameters parameters;
};
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
void main(void) {
vec2 startUv = varTexCoord0;

View file

@ -17,23 +17,23 @@
// See DeferredShader_MapSlot in DeferredLightingEffect.cpp for constants
// the albedo texture
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRRED_COLOR) uniform sampler2D albedoMap;
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRRED_COLOR, sampler2D, albedoMap);
// the normal texture
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRRED_NORMAL) uniform sampler2D normalMap;
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRRED_NORMAL, sampler2D, normalMap);
// the specular texture
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRRED_SPECULAR) uniform sampler2D specularMap;
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRRED_SPECULAR, sampler2D, specularMap);
// the depth texture
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRRED_DEPTH) uniform sampler2D depthMap;
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRRED_LINEAR_Z_EYE) uniform sampler2D linearZeyeMap;
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRRED_DEPTH, sampler2D, depthMap);
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRRED_LINEAR_Z_EYE, sampler2D, linearZeyeMap);
// the obscurance texture
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRED_OBSCURANCE) uniform sampler2D obscuranceMap;
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRED_OBSCURANCE, sampler2D, obscuranceMap);
// the lighting texture
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRED_LIGHTING) uniform sampler2D lightingMap;
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRED_LIGHTING, sampler2D, lightingMap);
struct DeferredFragment {
@ -160,14 +160,14 @@ DeferredFragment unpackDeferredFragment(DeferredFrameTransform deferredTransform
<@func declareDeferredCurvature()@>
// the curvature texture
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRED_CURVATURE) uniform sampler2D curvatureMap;
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRED_CURVATURE, sampler2D, curvatureMap);
vec4 fetchCurvature(vec2 texcoord) {
return texture(curvatureMap, texcoord);
}
// the curvature texture
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRED_DIFFUSED_CURVATURE) uniform sampler2D diffusedCurvatureMap;
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRED_DIFFUSED_CURVATURE, sampler2D, diffusedCurvatureMap);
vec4 fetchDiffusedCurvature(vec2 texcoord) {
return texture(diffusedCurvatureMap, texcoord);

View file

@ -14,10 +14,10 @@
<@include DeferredBuffer.slh@>
layout(location=0) out vec4 _fragColor0; // albedo / metallic
layout(location=1) out vec4 _fragColor1; // Normal
layout(location=2) out vec4 _fragColor2; // scattering / emissive / occlusion
layout(location=3) out vec4 _fragColor3; // emissive
OUTPUT(0, vec4, _fragColor0); // albedo / metallic
OUTPUT(1, vec4, _fragColor1); // Normal
OUTPUT(2, vec4, _fragColor2); // scattering / emissive / occlusion
OUTPUT(3, vec4, _fragColor3); // emissive
// the alpha threshold
const float alphaThreshold = 0.5;

View file

@ -24,7 +24,7 @@ struct CameraCorrection {
mat4 _prevViewInverse;
};
LAYOUT(binding=GPU_BUFFER_CAMERA_CORRECTION) uniform cameraCorrectionBuffer {
UNIFORM_BUFFER(GPU_BUFFER_CAMERA_CORRECTION, cameraCorrectionBuffer) {
CameraCorrection cameraCorrection;
};
@ -42,7 +42,7 @@ struct DeferredFrameTransform {
mat4 _invProjectionUnJittered[2];
};
LAYOUT(binding=RENDER_UTILS_BUFFER_DEFERRED_FRAME_TRANSFORM) uniform deferredFrameTransformBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_DEFERRED_FRAME_TRANSFORM, deferredFrameTransformBuffer) {
DeferredFrameTransform frameTransform;
};

View file

@ -19,12 +19,12 @@
<@include FadeObjectParams.shared.slh@>
// See ShapePipeline::Slot::BUFFER in ShapePipeline.h
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_FADE_PARAMS) uniform fadeParametersBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_FADE_PARAMS, fadeParametersBuffer) {
FadeParameters fadeParameters[CATEGORY_COUNT];
};
// See ShapePipeline::Slot::MAP in ShapePipeline.h
LAYOUT(binding=RENDER_UTILS_TEXTURE_FADE_MASK) uniform sampler2D fadeMaskMap;
TEXTURE(RENDER_UTILS_TEXTURE_FADE_MASK, sampler2D, fadeMaskMap);
vec3 getNoiseInverseSize(int category) {
return fadeParameters[category]._noiseInvSizeAndLevel.xyz;
@ -116,7 +116,7 @@ void applyFade(FadeObjectParams params, vec3 position, out vec3 emissive) {
<@func declareFadeFragmentUniform()@>
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_FADE_OBJECT_PARAMS) uniform fadeObjectParametersBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_FADE_OBJECT_PARAMS, fadeObjectParametersBuffer) {
FadeObjectParams fadeObjectParams;
};
@ -128,9 +128,9 @@ LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_FADE_OBJECT_PARAMS) uniform fadeObject
<@func declareFadeFragmentVertexInput()@>
layout(location=RENDER_UTILS_ATTR_FADE1) in vec4 _fadeData1;
layout(location=RENDER_UTILS_ATTR_FADE2) in vec4 _fadeData2;
layout(location=RENDER_UTILS_ATTR_FADE3) in vec4 _fadeData3;
INPUT(RENDER_UTILS_ATTR_FADE1, vec4, _fadeData1);
INPUT(RENDER_UTILS_ATTR_FADE2, vec4, _fadeData2);
INPUT(RENDER_UTILS_ATTR_FADE3, vec4, _fadeData3);
<@endfunc@>
@ -153,9 +153,9 @@ layout(location=RENDER_UTILS_ATTR_FADE3) in vec4 _fadeData3;
<@endfunc@>
<@func declareFadeVertexInstanced()@>
layout(location=RENDER_UTILS_ATTR_FADE1) out vec4 _fadeData1;
layout(location=RENDER_UTILS_ATTR_FADE2) out vec4 _fadeData2;
layout(location=RENDER_UTILS_ATTR_FADE3) out vec4 _fadeData3;
OUTPUT(RENDER_UTILS_ATTR_FADE1, vec4, _fadeData1);
OUTPUT(RENDER_UTILS_ATTR_FADE2, vec4, _fadeData2);
OUTPUT(RENDER_UTILS_ATTR_FADE3, vec4, _fadeData3);
<@endfunc@>
<@func passThroughFadeObjectParams()@>

View file

@ -23,7 +23,7 @@
<@include graphics/Haze.slh@>
<@if not HIFI_USE_BACKGROUND@>
LAYOUT(binding=RENDER_UTILS_TEXTURE_HAZE_LINEAR_DEPTH) uniform sampler2D linearDepthMap;
TEXTURE(RENDER_UTILS_TEXTURE_HAZE_LINEAR_DEPTH, sampler2D, linearDepthMap);
<@endif@>
vec4 unpackPositionFromZeye(vec2 texcoord) {
@ -42,8 +42,8 @@ vec4 unpackPositionFromZeye(vec2 texcoord) {
return vec4(evalEyePositionFromZeye(side, Zeye, texcoord), 1.0);
}
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
void main(void) {
vec4 fragPositionES = unpackPositionFromZeye(varTexCoord0);

View file

@ -15,15 +15,15 @@
<@include Highlight_shared.slh@>
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_HIGHLIGHT_PARAMS) uniform highlightParamsBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_HIGHLIGHT_PARAMS, highlightParamsBuffer) {
HighlightParameters params;
};
LAYOUT(binding=RENDER_UTILS_TEXTURE_HIGHLIGHT_SCENE_DEPTH) uniform sampler2D sceneDepthMap;
LAYOUT(binding=RENDER_UTILS_TEXTURE_HIGHLIGHT_DEPTH) uniform sampler2D highlightedDepthMap;
TEXTURE(RENDER_UTILS_TEXTURE_HIGHLIGHT_SCENE_DEPTH, sampler2D, sceneDepthMap);
TEXTURE(RENDER_UTILS_TEXTURE_HIGHLIGHT_DEPTH, sampler2D, highlightedDepthMap);
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
const float FAR_Z = 1.0;
const float OPACITY_EPSILON = 5e-3;

View file

@ -23,7 +23,7 @@ struct ItemBound {
};
#if !defined(GPU_SSBO_TRANSFORM_OBJECT)
LAYOUT(binding=GPU_RESOURCE_BUFFER_SLOT0_TEXTURE) uniform samplerBuffer ssbo0Buffer;
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_TEXTURE, ssbo0Buffer);
ItemBound getItemBound(int i) {
int offset = 2 * i;
ItemBound bound;
@ -32,7 +32,7 @@ ItemBound getItemBound(int i) {
return bound;
}
#else
LAYOUT_STD140(binding=GPU_RESOURCE_BUFFER_SLOT0_STORAGE) buffer ssbo0Buffer {
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_STORAGE, ssbo0Buffer) {
ItemBound bounds[];
};
ItemBound getItemBound(int i) {
@ -45,7 +45,7 @@ struct HighlightParameters {
vec2 outlineWidth;
};
LAYOUT_STD140(binding=0) uniform parametersBuffer {
UNIFORM_BUFFER(0, parametersBuffer) {
HighlightParameters _parameters;
};

View file

@ -10,7 +10,7 @@
<@include render-utils/ShaderConstants.h@>
<@func declareSkyboxMap()@>
// declareSkyboxMap
LAYOUT(binding=RENDER_UTILS_TEXTURE_SKYBOX) uniform samplerCube skyboxMap;
TEXTURE(RENDER_UTILS_TEXTURE_SKYBOX, samplerCube, skyboxMap);
vec4 evalSkyboxLight(vec3 direction, float lod) {
// textureQueryLevels is not available until #430, so we require explicit lod

View file

@ -24,7 +24,7 @@ struct FrustumGrid {
mat4 eyeToWorldMat;
};
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_LIGHT_CLUSTER_FRUSTUM_GRID) uniform frustumGridBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_CLUSTER_FRUSTUM_GRID, frustumGridBuffer) {
FrustumGrid frustumGrid;
};
@ -60,11 +60,11 @@ float projection_getFar(mat4 projection) {
#define GRID_FETCH_BUFFER(i) i!>
<@endif@>
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_LIGHT_CLUSTER_GRID) uniform clusterGridBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_CLUSTER_GRID, clusterGridBuffer) {
GRID_INDEX_TYPE _clusterGridTable[GRID_NUM_ELEMENTS];
};
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_LIGHT_CLUSTER_CONTENT) uniform clusterContentBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_CLUSTER_CONTENT, clusterContentBuffer) {
GRID_INDEX_TYPE _clusterGridContent[GRID_NUM_ELEMENTS];
};

View file

@ -23,7 +23,7 @@ struct LightingModel {
};
// See DeferredShader_BufferSlot in DeferredLightingEffect.cpp
LAYOUT(binding=RENDER_UTILS_BUFFER_LIGHT_MODEL) uniform lightingModelBuffer{
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_MODEL, lightingModelBuffer) {
LightingModel lightingModel;
};

View file

@ -15,7 +15,7 @@
<@func declareBeckmannSpecular()@>
LAYOUT(binding=RENDER_UTILS_TEXTURE_SSSC_SPECULAR_BECKMANN) uniform sampler2D scatteringSpecularBeckmann;
TEXTURE(RENDER_UTILS_TEXTURE_SSSC_SPECULAR_BECKMANN, sampler2D, scatteringSpecularBeckmann);
float fetchSpecularBeckmann(float ndoth, float roughness) {
return pow(2.0 * texture(scatteringSpecularBeckmann, vec2(ndoth, roughness)).r, 10.0);

View file

@ -19,7 +19,7 @@
#define SHADOW_SCREEN_SPACE_DITHER 1
// the shadow texture
LAYOUT(binding=RENDER_UTILS_TEXTURE_SHADOW) uniform sampler2DArrayShadow shadowMaps;
TEXTURE(RENDER_UTILS_TEXTURE_SHADOW, sampler2DArrayShadow, shadowMaps);
// Sample the shadowMap with PCF (built-in)
float fetchShadow(int cascadeIndex, vec3 shadowTexcoord) {

View file

@ -13,7 +13,7 @@
<@include Shadows_shared.slh@>
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_SHADOW_PARAMS) uniform shadowTransformBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_SHADOW_PARAMS, shadowTransformBuffer) {
ShadowParameters shadow;
};

View file

@ -18,7 +18,7 @@
const int MAX_CLUSTERS = 128;
const int INDICES_PER_VERTEX = 4;
LAYOUT_STD140(binding=GRAPHICS_BUFFER_SKINNING) uniform skinClusterBuffer {
UNIFORM_BUFFER(GRAPHICS_BUFFER_SKINNING, skinClusterBuffer) {
mat4 clusterMatrices[MAX_CLUSTERS];
};

View file

@ -56,7 +56,7 @@ vec3 generateProfile(vec2 uv) {
<@func declareSubsurfaceScatteringProfileMap()@>
LAYOUT(binding=RENDER_UTILS_TEXTURE_SSSC_PROFILE) uniform sampler2D scatteringProfile;
TEXTURE(RENDER_UTILS_TEXTURE_SSSC_PROFILE, sampler2D, scatteringProfile);
vec3 scatter(float r) {
return texture(scatteringProfile, vec2(r * 0.5, 0.5)).rgb;
@ -102,7 +102,7 @@ vec3 integrate(float cosTheta, float skinRadius) {
<@func declareSubsurfaceScatteringResource()@>
LAYOUT(binding=RENDER_UTILS_TEXTURE_SSSC_LUT) uniform sampler2D scatteringLUT;
TEXTURE(RENDER_UTILS_TEXTURE_SSSC_LUT, sampler2D, scatteringLUT);
vec3 fetchBRDF(float LdotN, float curvature) {
return texture(scatteringLUT, vec2( clamp(LdotN * 0.5 + 0.5, 0.0, 1.0), clamp(2.0 * curvature, 0.0, 1.0))).xyz;
@ -122,7 +122,7 @@ struct ScatteringParameters {
vec4 debugFlags;
};
LAYOUT(binding=RENDER_UTILS_BUFFER_SSSC_PARAMS) uniform subsurfaceScatteringParametersBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_SSSC_PARAMS, subsurfaceScatteringParametersBuffer) {
ScatteringParameters parameters;
};

View file

@ -26,7 +26,7 @@ struct WorkloadProxy {
};
#if !defined(GPU_SSBO_TRANSFORM_OBJECT)
LAYOUT(binding=GPU_RESOURCE_BUFFER_SLOT0_TEXTURE) uniform samplerBuffer workloadProxiesBuffer;
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_TEXTURE, workloadProxiesBuffer)
WorkloadProxy getWorkloadProxy(int i) {
int offset = 2 * i;
WorkloadProxy proxy;
@ -35,7 +35,7 @@ WorkloadProxy getWorkloadProxy(int i) {
return proxy;
}
#else
LAYOUT_STD140(binding=GPU_RESOURCE_BUFFER_SLOT0_STORAGE) buffer workloadProxiesBuffer {
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_STORAGE, workloadProxiesBuffer) {
WorkloadProxy _proxies[];
};
WorkloadProxy getWorkloadProxy(int i) {
@ -58,7 +58,7 @@ struct WorkloadView {
};
#if !defined(GPU_SSBO_TRANSFORM_OBJECT)
LAYOUT(binding=GPU_RESOURCE_BUFFER_SLOT1_TEXTURE) uniform samplerBuffer workloadViewsBuffer;
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT1_TEXTURE, workloadViewsBuffer);
WorkloadView getWorkloadView(int i) {
int offset = 8 * i;
WorkloadView view;
@ -73,7 +73,7 @@ WorkloadView getWorkloadView(int i) {
return view;
}
#else
LAYOUT_STD140(binding=GPU_RESOURCE_BUFFER_SLOT1_STORAGE) buffer workloadViewsBuffer {
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT1_STORAGE, workloadViewsBuffer) {
WorkloadView _views[];
};
WorkloadView getWorkloadView(int i) {

View file

@ -12,9 +12,9 @@
<@include render-utils/ShaderConstants.h@>
layout(location=RENDER_UTILS_ATTR_COLOR) in vec4 _color;
INPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
layout(location=0) out vec4 _fragColor;
OUTPUT(0, vec4, _fragColor);
void main(void) {
_fragColor = _color;

View file

@ -9,8 +9,8 @@
//
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
INPUT(GPU_ATTR_COLOR, vec4, inColor);
<@include gpu/Color.slh@>
<@include gpu/Transform.slh@>
@ -18,7 +18,7 @@ layout(location=GPU_ATTR_COLOR) in vec4 inColor;
<@include render-utils/ShaderConstants.h@>
layout(location=RENDER_UTILS_ATTR_COLOR) out vec4 _color;
OUTPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
void main(void) {
// pass along the color

View file

@ -16,8 +16,8 @@
<@include gpu/Color.slh@>
<$declareColorWheel()$>
LAYOUT(binding=RENDER_UTILS_DEBUG_TEXTURE0) uniform sampler2D debugTexture0;
LAYOUT(binding=RENDER_UTILS_TEXTURE_SHADOW) uniform sampler2DArrayShadow shadowMaps;
TEXTURE(RENDER_UTILS_DEBUG_TEXTURE0, sampler2D, debugTexture0);
TEXTURE(RENDER_UTILS_TEXTURE_SHADOW, sampler2DArrayShadow, shadowMaps);
<@include ShadowCore.slh@>
@ -25,7 +25,7 @@ LAYOUT(binding=RENDER_UTILS_TEXTURE_SHADOW) uniform sampler2DArrayShadow shadowM
<@include debug_deferred_buffer_shared.slh@>
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_DEBUG_DEFERRED_PARAMS) uniform parametersBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_DEBUG_DEFERRED_PARAMS, parametersBuffer) {
DebugParameters parameters;
};
@ -33,8 +33,8 @@ float curvatureAO(float k) {
return 1.0f - (0.0022f * k * k) + (0.0776f * k) + 0.7369f;
}
layout(location=0) in vec2 uv;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, uv);
OUTPUT(0, vec4, outFragColor);
//SOURCE_PLACEHOLDER_BEGIN
vec4 getFragmentColor() {

View file

@ -13,10 +13,10 @@
//
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
layout(location=0) out vec2 uv;
OUTPUT(0, vec2, uv);
void main(void) {
uv = (inPosition.xy + 1.0) * 0.5;

View file

@ -14,7 +14,7 @@
<@include render-utils/ShaderConstants.h@>
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
void main(void) {
const float depth = 1.0;

View file

@ -14,7 +14,7 @@
<@include gpu/Transform.slh@>
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
<@include render-utils/ShaderConstants.h@>
@ -23,7 +23,7 @@ layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
// FIXME make into a uniform buffer or push constant if this shader ever comes into use
vec4 sphereParam = vec4(0.0);
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
void main(void) {
if (sphereParam.w != 0.0) {

View file

@ -15,7 +15,7 @@
<@include gpu/Transform.slh@>
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
<@include graphics/Light.slh@>
<@include render-utils/ShaderConstants.h@>
@ -24,11 +24,11 @@ layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
<$declareLightBuffer(256)$>
LAYOUT(binding=RENDER_UTILS_BUFFER_LIGHT_INDEX) uniform lightIndexBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_INDEX, lightIndexBuffer) {
int lightIndex[256];
};
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord0;
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord0);
void main(void) {

View file

@ -13,7 +13,7 @@
//
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
<@include gpu/Transform.slh@>
<@include graphics/Light.slh@>
@ -23,10 +23,10 @@ layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
<$declareLightBuffer(256)$>
LAYOUT(binding=RENDER_UTILS_BUFFER_LIGHT_INDEX) uniform lightIndexBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_INDEX, lightIndexBuffer) {
int lightIndex[256];
};
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord0;
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord0);
void main(void) {
vec4 coneVertex = inPosition;

View file

@ -9,6 +9,7 @@
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
<@include DeferredBufferRead.slh@>
<@include render-utils/ShaderConstants.h@>
@ -23,11 +24,10 @@
<@include Shadow.slh@>
<@endif@>
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
#define _texCoord0 _texCoord01.xy
#define _texCoord1 _texCoord01.zw
layout(location=0) out vec4 _fragColor;
OUTPUT(0, vec4, _fragColor);
void main(void) {
DeferredFrameTransform deferredTransform = getDeferredFrameTransform();
@ -43,6 +43,7 @@ void main(void) {
float shadowAttenuation = 1.0;
<@endif@>
// Light mapped or not ?
if (frag.mode == FRAG_MODE_UNLIT || frag.mode == FRAG_MODE_LIGHTMAPPED) {
discard;
} else {

View file

@ -13,9 +13,9 @@
<@include DeferredBufferWrite.slh@>
<@include gpu/Paint.slh@>
layout(location=0) in vec4 varColor;
layout(location=1) in vec3 varTexcoord;
layout(location=2) in vec3 varEyePos;
INPUT(0, vec4, varColor);
INPUT(1, vec3, varTexcoord);
INPUT(2, vec3, varEyePos);
void main(void) {
if (varColor.w > 0.0) {

View file

@ -19,9 +19,9 @@
<$declareWorkloadProxies()$>
layout(location=0) out vec4 varColor;
layout(location=1) out vec3 varTexcoord;
layout(location=2) out vec3 varEyePos;
OUTPUT(0, vec4, varColor);
OUTPUT(1, vec3, varTexcoord);
OUTPUT(2, vec3, varEyePos);
void main(void) {
const vec4 UNIT_SPRITE[3] = vec4[3](

View file

@ -14,9 +14,9 @@
<@include DeferredBufferWrite.slh@>
<@include gpu/Paint.slh@>
layout(location=0) in vec4 varColor;
layout(location=1) in vec3 varTexcoord;
layout(location=2) in vec3 varEyePos;
INPUT(0, vec4, varColor);
INPUT(1, vec3, varTexcoord);
INPUT(2, vec3, varEyePos);
void main(void) {
if (varColor.w > 0.0) {

View file

@ -18,9 +18,9 @@
<@include WorkloadResource.slh@>
<$declareWorkloadViews()$>
layout(location=0) out vec4 varColor;
layout(location=1) out vec3 varTexcoord;
layout(location=2) out vec3 varEyePos;
OUTPUT(0, vec4, varColor);
OUTPUT(1, vec3, varTexcoord);
OUTPUT(2, vec3, varEyePos);
const int NUM_VERTICES_PER_SEGMENT = 2;
const int NUM_SEGMENT_PER_VIEW_REGION = 65;
@ -32,7 +32,7 @@ struct DrawMesh {
vec4 verts[NUM_SEGMENT_PER_VIEW_REGION];
};
LAYOUT_STD140(binding=0) uniform DrawMeshBuffer {
UNIFORM_BUFFER(0, DrawMeshBuffer) {
DrawMesh _drawMeshBuffer;
};

View file

@ -22,15 +22,15 @@ precision mediump float;
precision mediump int;
#endif
LAYOUT(binding=0) uniform sampler2D colorTexture;
TEXTURE(0, sampler2D, colorTexture);
//uniform sampler2D historyTexture;
// FIXME make into a uniform buffer or push constant if this shader ever comes into use
vec2 texcoordOffset = vec2(0.0);
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
//layout(location=0) out vec4 outFragHistory;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
//OUTPUT(0, vec4, outFragHistory);
void main() {
outFragColor = vec4(texture(colorTexture, varTexCoord0).xyz, 1.0/8.0);

View file

@ -13,15 +13,15 @@
//
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
<@include gpu/Transform.slh@>
<$declareStandardTransform()$>
layout(location=0) out vec2 varTexcoord;
OUTPUT(0, vec2, varTexcoord);
void main(void) {
varTexcoord = inTexCoord0.xy;

View file

@ -14,16 +14,16 @@
<@include gpu/ShaderConstants.h@>
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
LAYOUT(binding=0) uniform sampler2D colorTexture;
TEXTURE(0, sampler2D, colorTexture);
struct FxaaBlendParams {
vec4 sharpenIntensity;
};
LAYOUT(binding=0) uniform fxaaBlendParamsBuffer {
UNIFORM_BUFFER(0, fxaaBlendParamsBuffer) {
FxaaBlendParams params;
};

View file

@ -25,12 +25,16 @@ struct Grid {
vec4 edge;
};
LAYOUT(binding=0) uniform gridBuffer {
Grid grid;
UNIFORM_BUFFER(0, gridBuffer) {
Grid grid;
};
layout(location=GPU_ATTR_TEXCOORD0) in vec2 varTexCoord0;
layout(location=GPU_ATTR_COLOR) in vec4 varColor;
Grid getGrid() { return grid; }
INPUT(GPU_ATTR_TEXCOORD0, vec2, varTexCoord0);
INPUT(GPU_ATTR_COLOR, vec4, varColor);
OUTPUT(0, vec4, outFragColor);
void main(void) {
float gridLine = mix(paintGridMajorMinor(varTexCoord0, grid.offset, grid.period, grid.edge),

View file

@ -14,21 +14,21 @@
<@include render-utils/ShaderConstants.h@>
<@include gpu/Color.slh@>
LAYOUT(binding=0) uniform sampler2D hudTexture;
TEXTURE(0, sampler2D, hudTexture);
struct HUDData {
float alpha;
};
LAYOUT_STD140(binding=0) uniform hudBuffer {
UNIFORM_BUFFER(0, hudBuffer) {
HUDData hud;
};
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
#define _texCoord0 _texCoord01.xy
#define _texCoord1 _texCoord01.zw
layout(location=0) out vec4 fragColor0;
OUTPUT(0, vec4, fragColor0);
void main() {
vec4 color = texture(hudTexture, _texCoord0);

View file

@ -13,8 +13,8 @@
//
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
<@include gpu/Transform.slh@>
<@include render-utils/ShaderConstants.h@>
@ -25,11 +25,11 @@ struct HUDData {
float alpha;
};
LAYOUT_STD140(binding=0) uniform hudBuffer {
UNIFORM_BUFFER(0, hudBuffer) {
HUDData hud;
};
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
void main() {
_texCoord01 = vec4(inTexCoord0.st, 0.0, 0.0);

View file

@ -24,8 +24,8 @@
<$declareColorWheel()$>
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 _fragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, _fragColor);
void main(void) {

View file

@ -21,7 +21,7 @@
<$declareColorWheel()$>
layout(location=0) out vec4 varColor;
OUTPUT(0, vec4, varColor);
void main(void) {

View file

@ -21,8 +21,8 @@
<$declareColorWheel()$>
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 _fragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, _fragColor);
void main(void) {

View file

@ -23,7 +23,7 @@
layout(location=0) out vec4 varColor;
OUTPUT(0, vec4, varColor);
void main(void) {

View file

@ -10,8 +10,8 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
layout(location=0) in vec4 varColor;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec4, varColor);
OUTPUT(0, vec4, outFragColor);
void main(void) {

View file

@ -23,7 +23,7 @@
layout(location=0) out vec4 varColor;
OUTPUT(0, vec4, varColor);
void main(void) {

View file

@ -33,10 +33,10 @@
<@include render-utils/ShaderConstants.h@>
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
#define _texCoord0 _texCoord01.xy
#define _texCoord1 _texCoord01.zw
layout(location=0) out vec4 _fragColor;
OUTPUT(0, vec4, _fragColor);
void main(void) {

View file

@ -21,10 +21,10 @@
<@include render-utils/ShaderConstants.h@>
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
#define _texCoord0 _texCoord01.xy
#define _texCoord1 _texCoord01.zw
layout(location=0) out vec4 _fragColor;
OUTPUT(0, vec4, _fragColor);
void main(void) {
_fragColor = vec4(0.0);

View file

@ -75,20 +75,19 @@
<@endif@>
<@include gpu/Transform.slh@>
<$declareStandardCameraTransform()$>
layout(location=0) out vec4 _fragColor0;
OUTPUT(0, vec4, _fragColor0);
<@else@>
<@include DeferredBufferWrite.slh@>
<@endif@>
<@else@>
<@if HIFI_USE_MIRROR@>
<@if HIFI_USE_FORWARD@>
layout(location=0) out vec4 _fragColor0;
OUTPUT(0, vec4, _fragColor0);
<@else@>
<@include DeferredBufferWrite.slh@>
<@endif@>
<@else@>
layout(location=0) out vec4 _fragColor0;
OUTPUT(0, vec4, _fragColor0);
<@endif@>
<@endif@>
@ -101,18 +100,18 @@
<$declareFadeFragment()$>
<@endif@>
layout(location=RENDER_UTILS_ATTR_POSITION_WS) in vec4 _positionWS;
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
INPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
#define _texCoord0 _texCoord01.xy
#define _texCoord1 _texCoord01.zw
<@if not HIFI_USE_SHADOW@>
layout(location=RENDER_UTILS_ATTR_POSITION_ES) in vec4 _positionES;
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) in vec3 _normalWS;
INPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
INPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
<@if not HIFI_USE_MTOON@>
layout(location=RENDER_UTILS_ATTR_COLOR) in vec4 _color;
INPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
<@endif@>
<@if HIFI_USE_NORMALMAP@>
layout(location=RENDER_UTILS_ATTR_TANGENT_WS) in vec3 _tangentWS;
INPUT(RENDER_UTILS_ATTR_TANGENT_WS, vec3, _tangentWS);
<@endif@>
<@endif@>

View file

@ -12,11 +12,11 @@
//
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
layout(location=GPU_ATTR_TEXCOORD1) in vec4 inTexCoord1;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
INPUT(GPU_ATTR_COLOR, vec4, inColor);
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
INPUT(GPU_ATTR_TEXCOORD1, vec4, inTexCoord1);
<@include gpu/Color.slh@>
<@include render-utils/ShaderConstants.h@>
@ -49,16 +49,16 @@ layout(location=GPU_ATTR_TEXCOORD1) in vec4 inTexCoord1;
<$declareMeshDeformerActivation(1, 1)$>
<@endif@>
layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS;
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
OUTPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
<@if not HIFI_USE_SHADOW@>
layout(location=RENDER_UTILS_ATTR_POSITION_ES) out vec4 _positionES;
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) out vec3 _normalWS;
OUTPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
OUTPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
<@if not HIFI_USE_MTOON@>
layout(location=RENDER_UTILS_ATTR_COLOR) out vec4 _color;
OUTPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
<@endif@>
<@if HIFI_USE_NORMALMAP@>
layout(location=RENDER_UTILS_ATTR_TANGENT_WS) out vec3 _tangentWS;
OUTPUT(RENDER_UTILS_ATTR_TANGENT_WS, vec3, _tangentWS);
<@endif@>
<@endif@>

View file

@ -12,7 +12,7 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
layout(location=0) out vec4 _fragColor;
OUTPUT(0, vec4, _fragColor);
void main(void) {
}

View file

@ -16,7 +16,7 @@
layout(location=0) out vec4 _fragColor0;
<@endif@>
layout(location=0) in vec4 _color;
INPUT(0, vec4, _color);
void main(void) {
<@if not HIFI_USE_FORWARD@>

View file

@ -22,11 +22,11 @@ struct ParabolaData {
ivec3 spare;
};
LAYOUT_STD140(binding=0) uniform parabolaData {
UNIFORM_BUFFER(0, parabolaData) {
ParabolaData _parabolaData;
};
layout(location=0) out vec4 _color;
OUTPUT(0, vec4, _color);
void main(void) {
_color = _parabolaData.color;

View file

@ -22,7 +22,7 @@
<@include gpu/Transform.slh@>
<$declareStandardCameraTransform()$>
layout(location=0) out vec4 _fragColor0;
OUTPUT(0, vec4, _fragColor0);
<@else@>
<@include DeferredBufferWrite.slh@>
<@endif@>
@ -34,13 +34,16 @@
layout(location=RENDER_UTILS_ATTR_POSITION_MS) in vec2 _positionMS;
<@if HIFI_USE_TRANSLUCENT or HIFI_USE_FORWARD@>
layout(location=RENDER_UTILS_ATTR_POSITION_ES) in vec4 _positionES;
INPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
<@endif@>
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) in vec3 _normalWS;
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
// the interpolated normal
INPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
#define _texCoord0 _texCoord01.xy
#define _texCoord1 _texCoord01.zw
layout(location=RENDER_UTILS_ATTR_FADE1) flat in vec4 _glyphBounds; // we're reusing the fade texcoord locations here
// TODO: what does flat mean?
//layout(location=RENDER_UTILS_ATTR_FADE1) flat in vec4 _glyphBounds; // we're reusing the fade texcoord locations here
INPUT(RENDER_UTILS_ATTR_FADE1, vec4, _glyphBounds); // we're reusing the fade texcoord locations here
<@if HIFI_USE_MIRROR@>
<@include graphics/ShaderConstants.h@>

View file

@ -14,7 +14,7 @@
<@if not SDF_TEXT3D_SLH@>
<@def SDF_TEXT3D_SLH@>
LAYOUT(binding=0) uniform sampler2D fontTexture;
TEXTURE(0, sampler2D, fontTexture);
struct TextParams {
vec4 bounds;
@ -29,7 +29,7 @@ struct TextParams {
float spare;
};
LAYOUT(binding=0) uniform textParamsBuffer {
UNIFORM_BUFFER(0, textParamsBuffer) {
TextParams params;
};

View file

@ -11,8 +11,8 @@
//
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
<@include gpu/Transform.slh@>
<@include render-utils/ShaderConstants.h@>
@ -24,11 +24,13 @@ layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
layout(location=RENDER_UTILS_ATTR_POSITION_MS) out vec2 _positionMS;
<@if HIFI_USE_TRANSLUCENT or HIFI_USE_FORWARD@>
layout(location=RENDER_UTILS_ATTR_POSITION_ES) out vec4 _positionES;
OUTPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
<@endif@>
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) out vec3 _normalWS;
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
layout(location=RENDER_UTILS_ATTR_FADE1) flat out vec4 _glyphBounds; // we're reusing the fade texcoord locations here
OUTPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
//TODO: what does flat mean?
//layout(location=RENDER_UTILS_ATTR_FADE1) flat out vec4 _glyphBounds; // we're reusing the fade texcoord locations here
OUTPUT(RENDER_UTILS_ATTR_FADE1, vec4, _glyphBounds); // we're reusing the fade texcoord locations here
void main() {
_positionMS = inPosition.xy;
@ -54,4 +56,4 @@ void main() {
const vec3 normal = vec3(0, 0, 1);
<$transformModelToWorldDir(cam, obj, normal, _normalWS)$>
}
}

View file

@ -23,7 +23,7 @@
<@include LightingModel.slh@>
<@endif@>
layout(location=0) out vec4 _fragColor0;
OUTPUT(0, vec4, _fragColor0);
<@endif@>
<@if not HIFI_USE_UNLIT@>
@ -51,19 +51,19 @@
<@if not HIFI_USE_UNLIT@>
<@if HIFI_USE_FORWARD or HIFI_USE_TRANSLUCENT@>
layout(location=RENDER_UTILS_ATTR_POSITION_ES) in vec4 _positionES;
INPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
<@endif@>
<@endif@>
<@if HIFI_USE_FADE@>
layout(location=RENDER_UTILS_ATTR_POSITION_WS) in vec4 _positionWS;
INPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
<@endif@>
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) in vec3 _normalWS;
layout(location=RENDER_UTILS_ATTR_COLOR) in vec4 _color;
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
INPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
INPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
#define _texCoord0 _texCoord01.xy
#define _texCoord1 _texCoord01.zw
LAYOUT(binding=0) uniform sampler2D simpleTexture;
TEXTURE(0, sampler2D, simpleTexture);
void main(void) {
vec4 texel = texture(simpleTexture, _texCoord0);

View file

@ -11,10 +11,10 @@
//
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
INPUT(GPU_ATTR_COLOR, vec4, inColor);
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
<@include gpu/Color.slh@>
<@include gpu/Transform.slh@>
@ -26,17 +26,17 @@ layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
<@include Fade.slh@>
<$declareFadeVertexInstanced()$>
layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS;
OUTPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
<@endif@>
<@if not HIFI_USE_UNLIT@>
<@if HIFI_USE_FORWARD or HIFI_USE_TRANSLUCENT@>
layout(location=RENDER_UTILS_ATTR_POSITION_ES) out vec4 _positionES;
OUTPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
<@endif@>
<@endif@>
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) out vec3 _normalWS;
layout(location=RENDER_UTILS_ATTR_COLOR) out vec4 _color;
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
OUTPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
OUTPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
void main(void) {
_color = color_sRGBAToLinear(inColor);
@ -59,4 +59,4 @@ void main(void) {
<$passThroughFadeObjectParams()$>
<@endif@>
<$transformModelToWorldDir(cam, obj, inNormal.xyz, _normalWS)$>
}
}

View file

@ -18,7 +18,7 @@
<@include GlobalLight.slh@>
<$declareEvalGlobalLightingAlphaBlended()$>
layout(location=0) out vec4 _fragColor0;
OUTPUT(0, vec4, _fragColor0);
<@endif@>
<@include gpu/Transform.slh@>
@ -27,12 +27,12 @@
<@include CullFace.slh@>
<@include render-utils/ShaderConstants.h@>
layout(location=RENDER_UTILS_ATTR_POSITION_MS) in vec4 _positionMS;
layout(location=RENDER_UTILS_ATTR_POSITION_ES) in vec4 _positionES;
layout(location=RENDER_UTILS_ATTR_NORMAL_MS) in vec3 _normalMS;
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) in vec3 _normalWS;
layout(location=RENDER_UTILS_ATTR_COLOR) in vec4 _color;
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
INPUT(RENDER_UTILS_ATTR_POSITION_MS, vec4, _positionMS);
INPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
INPUT(RENDER_UTILS_ATTR_NORMAL_MS, vec3, _normalMS);
INPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
INPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
#define _texCoord0 _texCoord01.xy
#define _texCoord1 _texCoord01.zw

View file

@ -59,7 +59,7 @@ float unpackOcclusion(vec4 raw) {
<@include DeferredTransform.slh@>
<$declareDeferredFrameTransform()$>
LAYOUT(binding=RENDER_UTILS_BUFFER_SSAO_PARAMS) uniform ambientOcclusionParamsBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_SSAO_PARAMS, ambientOcclusionParamsBuffer) {
AmbientOcclusionParams params;
};
@ -248,8 +248,8 @@ vec3 getTapLocationClampedSSAO(int sampleNumber, float spinAngle, float outerRad
<@func declareFetchDepthPyramidMap()@>
// the depth pyramid texture
LAYOUT(binding=RENDER_UTILS_TEXTURE_SSAO_DEPTH) uniform sampler2D depthPyramidTex;
LAYOUT(binding=RENDER_UTILS_TEXTURE_SSAO_NORMAL) uniform sampler2D normalTex;
TEXTURE(RENDER_UTILS_TEXTURE_SSAO_DEPTH, sampler2D, depthPyramidTex);
TEXTURE(RENDER_UTILS_TEXTURE_SSAO_NORMAL, sampler2D, normalTex);
vec2 getFramebufferUVFromSideUV(ivec4 side, vec2 uv) {
return mix(uv, vec2((uv.x + float(getStereoSide(side))) * 0.5, uv.y), float(isStereo()));

View file

@ -26,7 +26,7 @@ struct DebugParams{
vec4 pixelInfo;
};
LAYOUT(binding=RENDER_UTILS_BUFFER_SSAO_DEBUG_PARAMS) uniform debugAmbientOcclusionBuffer {
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_SSAO_DEBUG_PARAMS, debugAmbientOcclusionBuffer) {
DebugParams debugParams;
};
@ -34,7 +34,7 @@ vec2 getDebugCursorTexcoord(){
return debugParams.pixelInfo.xy;
}
layout(location=0) out vec4 outFragColor;
OUTPUT(0, vec4, outFragColor);
void main(void) {
// Stereo side info based on the real viewport size of this pass

View file

@ -21,9 +21,8 @@
#define SSAO_HBAO_MAX_RADIUS 300.0
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
void main(void) {
// Pixel being shaded

View file

@ -14,9 +14,9 @@
<@include ssao.slh@>
<$declareAmbientOcclusion()$>
LAYOUT(binding=0) uniform sampler2D depthMap;
TEXTURE(0, sampler2D, depthMap);
layout(location=0) out vec4 outFragColor;
OUTPUT(0, vec4, outFragColor);
void main(void) {
float Zdb = texelFetch(depthMap, ivec2(gl_FragCoord.xy), 0).x;

View file

@ -14,14 +14,14 @@
<@include gpu/ShaderConstants.h@>
// the texture
LAYOUT(binding=0) uniform sampler2D colorMap;
TEXTURE(0, sampler2D, colorMap);
layout(location=GPU_ATTR_POSITION) in vec3 varPosition;
layout(location=GPU_ATTR_NORMAL) in vec3 varNormal;
layout(location=GPU_ATTR_TEXCOORD0) in vec2 varTexCoord0;
layout(location=GPU_ATTR_COLOR) in vec4 varColor;
INPUT(GPU_ATTR_POSITION, vec3, varPosition);
INPUT(GPU_ATTR_NORMAL, vec3, varNormal);
INPUT(GPU_ATTR_TEXCOORD0, vec2, varTexCoord0);
INPUT(GPU_ATTR_COLOR, vec4, varColor);
layout(location=0) out vec4 outFragColor;
OUTPUT(0, vec4, outFragColor);
void main(void) {
vec4 color = texture(colorMap, varTexCoord0);

View file

@ -14,14 +14,14 @@
<@include gpu/ShaderConstants.h@>
// the texture
LAYOUT(binding=0) uniform sampler2D colorMap;
TEXTURE(0, sampler2D, colorMap);
layout(location=GPU_ATTR_POSITION) in vec3 varPosition;
layout(location=GPU_ATTR_NORMAL) in vec3 varNormal;
layout(location=GPU_ATTR_TEXCOORD0) in vec2 varTexCoord0;
layout(location=GPU_ATTR_COLOR) in vec4 varColor;
INPUT(GPU_ATTR_POSITION, vec3, varPosition);
INPUT(GPU_ATTR_NORMAL, vec3, varNormal);
INPUT(GPU_ATTR_TEXCOORD0, vec2, varTexCoord0);
INPUT(GPU_ATTR_COLOR, vec4, varColor);
layout(location=0) out vec4 outFragColor;
OUTPUT(0, vec4, outFragColor);
void main(void) {
vec4 color = texture(colorMap, varTexCoord0);

View file

@ -13,19 +13,19 @@
//
<@include gpu/ShaderConstants.h@>
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
INPUT(GPU_ATTR_COLOR, vec4, inColor);
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
<@include gpu/Color.slh@>
<@include gpu/Transform.slh@>
<$declareStandardTransform()$>
layout(location=GPU_ATTR_POSITION) out vec3 varPosition;
layout(location=GPU_ATTR_NORMAL) out vec3 varNormal;
layout(location=GPU_ATTR_TEXCOORD0) out vec2 varTexCoord0;
layout(location=GPU_ATTR_COLOR) out vec4 varColor;
OUTPUT(GPU_ATTR_POSITION, vec3, varPosition);
OUTPUT(GPU_ATTR_NORMAL, vec3, varNormal);
OUTPUT(GPU_ATTR_TEXCOORD0, vec2, varTexCoord0);
OUTPUT(GPU_ATTR_COLOR, vec4, varColor);
void main(void) {
varTexCoord0 = inTexCoord0.st;

View file

@ -12,7 +12,7 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
layout(location=0) in vec2 varTexCoord0;
INPUT(0, vec2, varTexCoord0);
float aspectRatio = 0.95;

View file

@ -23,15 +23,15 @@
<@include SubsurfaceScattering.slh@>
<$declareSubsurfaceScatteringBRDF()$>
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 _fragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, _fragColor);
struct SSSDebugParams {
vec4 cursorTexCoordSpare2;
};
// Deferred frame transform uses slot 0
LAYOUT_STD140(binding=1) uniform sssDebugParamsBuffer {
UNIFORM_BUFFER(1, sssDebugParamsBuffer) {
SSSDebugParams sssDebugParams;
};

View file

@ -15,8 +15,8 @@
<$declareSubsurfaceScatteringProfileSource()$>
<$declareSubsurfaceScatteringIntegrate(2000)$>
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
void main(void) {

View file

@ -14,8 +14,8 @@
<@include SubsurfaceScattering.slh@>
<$declareSubsurfaceScatteringGenerateProfileMap()$>
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
void main(void) {
outFragColor = vec4(generateProfile(varTexCoord0.xy), 1.0);

View file

@ -13,8 +13,8 @@
layout(location=0) in vec2 varTexCoord0;
layout(location=0) out vec4 outFragColor;
INPUT(0, vec2, varTexCoord0);
OUTPUT(0, vec4, outFragColor);
float specularBeckmann(float ndoth, float roughness) {
float alpha = acos(ndoth);

Some files were not shown because too many files have changed in this diff Show more