diff --git a/cmake/macros/AutoScribeShader.cmake b/cmake/macros/AutoScribeShader.cmake
index fec51fefc7..1d1e5970d9 100755
--- a/cmake/macros/AutoScribeShader.cmake
+++ b/cmake/macros/AutoScribeShader.cmake
@@ -8,290 +8,224 @@
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
#
-function(global_append varName varValue)
- get_property(LOCAL_LIST GLOBAL PROPERTY ${varName})
- list(APPEND LOCAL_LIST ${varValue})
- set_property(GLOBAL PROPERTY ${varName} ${LOCAL_LIST})
-endfunction()
-
-function(AUTOSCRIBE_SHADER SHADER_FILE)
- # Grab include files
- foreach(includeFile ${ARGN})
- list(APPEND SHADER_INCLUDE_FILES ${includeFile})
- endforeach()
-
- foreach(SHADER_INCLUDE ${SHADER_INCLUDE_FILES})
- get_filename_component(INCLUDE_DIR ${SHADER_INCLUDE} PATH)
- list(APPEND SHADER_INCLUDES_PATHS ${INCLUDE_DIR})
- endforeach()
-
- #Extract the unique include shader paths
- set(INCLUDES ${HIFI_LIBRARIES_SHADER_INCLUDE_FILES})
- #message(${TARGET_NAME} Hifi for includes ${INCLUDES})
- foreach(EXTRA_SHADER_INCLUDE ${INCLUDES})
- list(APPEND SHADER_INCLUDES_PATHS ${EXTRA_SHADER_INCLUDE})
- endforeach()
-
- list(REMOVE_DUPLICATES SHADER_INCLUDES_PATHS)
- #message(ready for includes ${SHADER_INCLUDES_PATHS})
-
- # make the scribe include arguments
- set(SCRIBE_INCLUDES)
- foreach(INCLUDE_PATH ${SHADER_INCLUDES_PATHS})
- set(SCRIBE_INCLUDES ${SCRIBE_INCLUDES} -I ${INCLUDE_PATH}/)
- endforeach()
-
- # Define the final name of the generated shader file
- get_filename_component(SHADER_TARGET ${SHADER_FILE} NAME_WE)
- get_filename_component(SHADER_EXT ${SHADER_FILE} EXT)
- if(SHADER_EXT STREQUAL .slv)
- set(SHADER_TYPE vert)
- elseif(${SHADER_EXT} STREQUAL .slf)
- set(SHADER_TYPE frag)
- elseif(${SHADER_EXT} STREQUAL .slg)
- set(SHADER_TYPE geom)
- endif()
- file(MAKE_DIRECTORY "${SHADERS_DIR}/${SHADER_LIB}")
- set(SHADER_TARGET "${SHADERS_DIR}/${SHADER_LIB}/${SHADER_TARGET}.${SHADER_TYPE}")
- set(SCRIBE_COMMAND scribe)
-
- # Target dependant Custom rule on the SHADER_FILE
- if (APPLE)
- set(GLPROFILE MAC_GL)
- elseif (ANDROID)
- set(GLPROFILE LINUX_GL)
- set(SCRIBE_COMMAND ${NATIVE_SCRIBE})
- elseif (UNIX)
- set(GLPROFILE LINUX_GL)
- else ()
- set(GLPROFILE PC_GL)
- endif()
- set(SCRIBE_ARGS -T ${SHADER_TYPE} -D GLPROFILE ${GLPROFILE} ${SCRIBE_INCLUDES} -o ${SHADER_TARGET} ${SHADER_FILE})
- add_custom_command(
- OUTPUT ${SHADER_TARGET}
- COMMAND ${SCRIBE_COMMAND} ${SCRIBE_ARGS}
- DEPENDS ${SHADER_FILE} ${SCRIBE_COMMAND} ${SHADER_INCLUDE_FILES}
- )
-
- #output the generated file name
- set(AUTOSCRIBE_SHADER_RETURN ${SHADER_TARGET} PARENT_SCOPE)
-endfunction()
-
-macro(AUTOSCRIBE_APPEND_SHADER_SOURCES)
- if (NOT("${ARGN}" STREQUAL ""))
- set_property(GLOBAL PROPERTY ${TARGET_NAME}_SHADER_SOURCES "${ARGN}")
- global_append(GLOBAL_SHADER_LIBS ${TARGET_NAME})
- global_append(GLOBAL_SHADER_SOURCES "${ARGN}")
- endif()
-endmacro()
-
-macro(AUTOSCRIBE_SHADER_LIB)
- unset(HIFI_LIBRARIES_SHADER_INCLUDE_FILES)
- set(SRC_FOLDER "${CMAKE_SOURCE_DIR}/libraries/${TARGET_NAME}/src")
-
- file(GLOB_RECURSE SHADER_INCLUDE_FILES ${SRC_FOLDER}/*.slh)
- file(GLOB_RECURSE SHADER_VERTEX_FILES ${SRC_FOLDER}/*.slv)
- file(GLOB_RECURSE SHADER_FRAGMENT_FILES ${SRC_FOLDER}/*.slf)
- file(GLOB_RECURSE SHADER_GEOMETRY_FILES ${SRC_FOLDER}/*.slg)
- file(GLOB_RECURSE SHADER_COMPUTE_FILES ${SRC_FOLDER}/*.slc)
-
- unset(SHADER_SOURCE_FILES)
- list(APPEND SHADER_SOURCE_FILES ${SHADER_VERTEX_FILES})
- list(APPEND SHADER_SOURCE_FILES ${SHADER_FRAGMENT_FILES})
- list(APPEND SHADER_SOURCE_FILES ${SHADER_GEOMETRY_FILES})
- list(APPEND SHADER_SOURCE_FILES ${SHADER_COMPUTE_FILES})
-
- unset(LOCAL_SHADER_SOURCES)
- list(APPEND LOCAL_SHADER_SOURCES ${SHADER_SOURCE_FILES})
- list(APPEND LOCAL_SHADER_SOURCES ${SHADER_INCLUDE_FILES})
-
- AUTOSCRIBE_APPEND_SHADER_SOURCES(${LOCAL_SHADER_SOURCES})
-
- file(RELATIVE_PATH RELATIVE_LIBRARY_DIR_PATH ${CMAKE_CURRENT_SOURCE_DIR} "${HIFI_LIBRARY_DIR}")
- foreach(HIFI_LIBRARY ${ARGN})
- list(APPEND HIFI_LIBRARIES_SHADER_INCLUDE_FILES ${HIFI_LIBRARY_DIR}/${HIFI_LIBRARY}/src)
- endforeach()
-endmacro()
-
-macro(AUTOSCRIBE_PROGRAM)
- set(oneValueArgs NAME VERTEX FRAGMENT GEOMETRY COMPUTE)
- cmake_parse_arguments(AUTOSCRIBE_PROGRAM "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
- if (NOT (DEFINED AUTOSCRIBE_PROGRAM_NAME))
- message(FATAL_ERROR "Programs must have a name and both a vertex and fragment shader")
- endif()
- if (NOT (DEFINED AUTOSCRIBE_PROGRAM_VERTEX))
- set(AUTOSCRIBE_PROGRAM_VERTEX ${AUTOSCRIBE_PROGRAM_NAME})
- endif()
- if (NOT (DEFINED AUTOSCRIBE_PROGRAM_FRAGMENT))
- set(AUTOSCRIBE_PROGRAM_FRAGMENT ${AUTOSCRIBE_PROGRAM_NAME})
- endif()
-
- if (NOT (${AUTOSCRIBE_PROGRAM_VERTEX} MATCHES ".*::.*"))
- set(AUTOSCRIBE_PROGRAM_VERTEX "vertex::${AUTOSCRIBE_PROGRAM_VERTEX}")
- endif()
- if (NOT (${AUTOSCRIBE_PROGRAM_FRAGMENT} MATCHES ".*::.*"))
- set(AUTOSCRIBE_PROGRAM_FRAGMENT "fragment::${AUTOSCRIBE_PROGRAM_FRAGMENT}")
- endif()
-
- unset(AUTOSCRIBE_PROGRAM_MAP)
- list(APPEND AUTOSCRIBE_PROGRAM_MAP AUTOSCRIBE_PROGRAM_VERTEX)
- list(APPEND AUTOSCRIBE_PROGRAM_MAP ${AUTOSCRIBE_PROGRAM_VERTEX})
- list(APPEND AUTOSCRIBE_PROGRAM_MAP AUTOSCRIBE_PROGRAM_FRAGMENT)
- list(APPEND AUTOSCRIBE_PROGRAM_MAP ${AUTOSCRIBE_PROGRAM_FRAGMENT})
- global_append(${TARGET_NAME}_PROGRAMS ${AUTOSCRIBE_PROGRAM_NAME})
- set_property(GLOBAL PROPERTY ${AUTOSCRIBE_PROGRAM_NAME} "${AUTOSCRIBE_PROGRAM_MAP}")
-endmacro()
-
-macro(unpack_map)
- set(MAP_VAR "${ARGN}")
- list(LENGTH MAP_VAR MAP_SIZE)
- MATH(EXPR MAP_ENTRY_RANGE "(${MAP_SIZE} / 2) - 1")
- foreach(INDEX RANGE ${MAP_ENTRY_RANGE})
- MATH(EXPR INDEX_NAME "${INDEX} * 2")
- MATH(EXPR INDEX_VAL "${INDEX_NAME} + 1")
- list(GET MAP_VAR ${INDEX_NAME} VAR_NAME)
- list(GET MAP_VAR ${INDEX_VAL} VAR_VAL)
- set(${VAR_NAME} ${VAR_VAL})
+macro(AUTOSCRIBE_SHADER)
+ message(STATUS "Processing shader ${SHADER_FILE}")
+ unset(SHADER_INCLUDE_FILES)
+ # Grab include files
+ foreach(includeFile ${ARGN})
+ list(APPEND SHADER_INCLUDE_FILES ${includeFile})
endforeach()
-endmacro()
-macro(PROCESS_SHADER_FILE)
- AUTOSCRIBE_SHADER(${SHADER} ${ALL_SHADER_HEADERS} ${HIFI_LIBRARIES_SHADER_INCLUDE_FILES})
- file(TO_CMAKE_PATH "${AUTOSCRIBE_SHADER_RETURN}" AUTOSCRIBE_GENERATED_FILE)
- set_property(SOURCE ${AUTOSCRIBE_GENERATED_FILE} PROPERTY SKIP_AUTOMOC ON)
- source_group("Compiled/${SHADER_LIB}" FILES ${AUTOSCRIBE_GENERATED_FILE})
- set(REFLECTED_SHADER "${AUTOSCRIBE_GENERATED_FILE}.json")
+ foreach(SHADER_INCLUDE ${SHADER_INCLUDE_FILES})
+ get_filename_component(INCLUDE_DIR ${SHADER_INCLUDE} PATH)
+ list(APPEND SHADER_INCLUDES_PATHS ${INCLUDE_DIR})
+ endforeach()
+
+ list(REMOVE_DUPLICATES SHADER_INCLUDES_PATHS)
+ #Extract the unique include shader paths
+ set(INCLUDES ${HIFI_LIBRARIES_SHADER_INCLUDE_FILES})
+ foreach(EXTRA_SHADER_INCLUDE ${INCLUDES})
+ list(APPEND SHADER_INCLUDES_PATHS ${EXTRA_SHADER_INCLUDE})
+ endforeach()
+
+ list(REMOVE_DUPLICATES SHADER_INCLUDES_PATHS)
+ #message(ready for includes ${SHADER_INCLUDES_PATHS})
+
+ # make the scribe include arguments
+ set(SCRIBE_INCLUDES)
+ foreach(INCLUDE_PATH ${SHADER_INCLUDES_PATHS})
+ set(SCRIBE_INCLUDES ${SCRIBE_INCLUDES} -I ${INCLUDE_PATH}/)
+ endforeach()
+
+ # Define the final name of the generated shader file
+ get_filename_component(SHADER_NAME ${SHADER_FILE} NAME_WE)
+ get_filename_component(SHADER_EXT ${SHADER_FILE} EXT)
+ if(SHADER_EXT STREQUAL .slv)
+ set(SHADER_TYPE vert)
+ elseif(${SHADER_EXT} STREQUAL .slf)
+ set(SHADER_TYPE frag)
+ elseif(${SHADER_EXT} STREQUAL .slg)
+ set(SHADER_TYPE geom)
+ endif()
+ file(MAKE_DIRECTORY "${SHADERS_DIR}/${SHADER_LIB}")
+ set(SHADER_TARGET "${SHADERS_DIR}/${SHADER_LIB}/${SHADER_NAME}.${SHADER_TYPE}")
+ file(TO_CMAKE_PATH "${SHADER_TARGET}" COMPILED_SHADER)
+ set(REFLECTED_SHADER "${COMPILED_SHADER}.json")
+
+ set(SCRIBE_ARGS -T ${SHADER_TYPE} -D GLPROFILE ${GLPROFILE} ${SCRIBE_INCLUDES} -o ${SHADER_TARGET} ${SHADER_FILE})
+
+ # Generate the frag/vert file
+ add_custom_command(
+ OUTPUT ${SHADER_TARGET}
+ COMMAND ${SCRIBE_COMMAND} ${SCRIBE_ARGS}
+ DEPENDS ${SHADER_FILE} ${SCRIBE_COMMAND} ${SHADER_INCLUDE_FILES})
+
+ # Generate the json reflection
+ # FIXME move to spirv-cross for this task after we have spirv compatible shaders
+ add_custom_command(
+ OUTPUT ${REFLECTED_SHADER}
+ COMMAND ${SHREFLECT_COMMAND} ${COMPILED_SHADER}
+ DEPENDS ${SHREFLECT_DEPENDENCY} ${COMPILED_SHADER})
+
+ #output the generated file name
+ source_group("Compiled/${SHADER_LIB}" FILES ${COMPILED_SHADER})
+ set_property(SOURCE ${COMPILED_SHADER} PROPERTY SKIP_AUTOMOC ON)
+ list(APPEND COMPILED_SHADERS ${COMPILED_SHADER})
+
source_group("Reflected/${SHADER_LIB}" FILES ${REFLECTED_SHADER})
- list(APPEND COMPILED_SHADERS ${AUTOSCRIBE_GENERATED_FILE})
- get_filename_component(ENUM_NAME ${SHADER} NAME_WE)
- string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "${ENUM_NAME} = ${SHADER_COUNT},\n")
+ list(APPEND REFLECTED_SHADERS ${REFLECTED_SHADER})
+
+ string(CONCAT SHADER_QRC "${SHADER_QRC}" "${COMPILED_SHADER}\n")
+ string(CONCAT SHADER_QRC "${SHADER_QRC}" "${REFLECTED_SHADER}\n")
+ string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "${SHADER_NAME} = ${SHADER_COUNT},\n")
+
MATH(EXPR SHADER_COUNT "${SHADER_COUNT}+1")
endmacro()
-macro(AUTOSCRIBE_SHADER_FINISH)
- get_property(GLOBAL_SHADER_LIBS GLOBAL PROPERTY GLOBAL_SHADER_LIBS)
- list(REMOVE_DUPLICATES GLOBAL_SHADER_LIBS)
- set(SHADER_COUNT 0)
- set(PROGRAM_COUNT 0)
+macro(AUTOSCRIBE_SHADER_LIB)
+ if (NOT ("${TARGET_NAME}" STREQUAL "shaders"))
+ message(FATAL_ERROR "AUTOSCRIBE_SHADER_LIB can only be used by the shaders library")
+ endif()
+
+ list(APPEND HIFI_LIBRARIES_SHADER_INCLUDE_FILES "${CMAKE_SOURCE_DIR}/libraries/${SHADER_LIB}/src")
+ string(REGEX REPLACE "[-]" "_" SHADER_NAMESPACE ${SHADER_LIB})
+ string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "namespace ${SHADER_NAMESPACE} {\n")
+ set(SRC_FOLDER "${CMAKE_SOURCE_DIR}/libraries/${ARGN}/src")
+
+ # Process the scribe headers
+ file(GLOB_RECURSE SHADER_INCLUDE_FILES ${SRC_FOLDER}/*.slh)
+ if(SHADER_INCLUDE_FILES)
+ source_group("${SHADER_LIB}/Headers" FILES ${SHADER_INCLUDE_FILES})
+ list(APPEND ALL_SHADER_HEADERS ${SHADER_INCLUDE_FILES})
+ list(APPEND ALL_SCRIBE_SHADERS ${SHADER_INCLUDE_FILES})
+ endif()
+
+ file(GLOB_RECURSE SHADER_VERTEX_FILES ${SRC_FOLDER}/*.slv)
+ if (SHADER_VERTEX_FILES)
+ source_group("${SHADER_LIB}/Vertex" FILES ${SHADER_VERTEX_FILES})
+ list(APPEND ALL_SCRIBE_SHADERS ${SHADER_VERTEX_FILES})
+ string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "namespace vertex { enum {\n")
+ foreach(SHADER_FILE ${SHADER_VERTEX_FILES})
+ AUTOSCRIBE_SHADER(${ALL_SHADER_HEADERS})
+ endforeach()
+ string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "}; } // vertex \n")
+ endif()
+
+ file(GLOB_RECURSE SHADER_FRAGMENT_FILES ${SRC_FOLDER}/*.slf)
+ if (SHADER_FRAGMENT_FILES)
+ source_group("${SHADER_LIB}/Fragment" FILES ${SHADER_FRAGMENT_FILES})
+ list(APPEND ALL_SCRIBE_SHADERS ${SHADER_FRAGMENT_FILES})
+ string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "namespace fragment { enum {\n")
+ foreach(SHADER_FILE ${SHADER_FRAGMENT_FILES})
+ AUTOSCRIBE_SHADER(${ALL_SHADER_HEADERS})
+ endforeach()
+ string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "}; } // fragment \n")
+ endif()
+
+ # FIXME add support for geometry, compute and tesselation shaders
+ #file(GLOB_RECURSE SHADER_GEOMETRY_FILES ${SRC_FOLDER}/*.slg)
+ #file(GLOB_RECURSE SHADER_COMPUTE_FILES ${SRC_FOLDER}/*.slc)
+
+ # the programs
+ file(GLOB_RECURSE SHADER_PROGRAM_FILES ${SRC_FOLDER}/*.slp)
+ if (SHADER_PROGRAM_FILES)
+ source_group("${SHADER_LIB}/Program" FILES ${SHADER_PROGRAM_FILES})
+ list(APPEND ALL_SCRIBE_SHADERS ${SHADER_PROGRAM_FILES})
+ string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "namespace program { enum {\n")
+ foreach(PROGRAM_FILE ${SHADER_PROGRAM_FILES})
+ get_filename_component(PROGRAM_NAME ${PROGRAM_FILE} NAME_WE)
+ set(AUTOSCRIBE_PROGRAM_FRAGMENT ${PROGRAM_NAME})
+ file(READ ${PROGRAM_FILE} PROGRAM_CONFIG)
+ set(AUTOSCRIBE_PROGRAM_VERTEX ${PROGRAM_NAME})
+ set(AUTOSCRIBE_PROGRAM_FRAGMENT ${PROGRAM_NAME})
+
+ if (NOT("${PROGRAM_CONFIG}" STREQUAL ""))
+ string(REGEX MATCH ".*VERTEX +([_\\:A-Z0-9a-z]+)" MVERT ${PROGRAM_CONFIG})
+ if (CMAKE_MATCH_1)
+ set(AUTOSCRIBE_PROGRAM_VERTEX ${CMAKE_MATCH_1})
+ endif()
+ string(REGEX MATCH ".*FRAGMENT +([_:A-Z0-9a-z]+)" MFRAG ${PROGRAM_CONFIG})
+ if (CMAKE_MATCH_1)
+ set(AUTOSCRIBE_PROGRAM_FRAGMENT ${CMAKE_MATCH_1})
+ endif()
+ endif()
+
+ if (NOT (${AUTOSCRIBE_PROGRAM_VERTEX} MATCHES ".*::.*"))
+ set(AUTOSCRIBE_PROGRAM_VERTEX "vertex::${AUTOSCRIBE_PROGRAM_VERTEX}")
+ endif()
+ if (NOT (${AUTOSCRIBE_PROGRAM_FRAGMENT} MATCHES ".*::.*"))
+ set(AUTOSCRIBE_PROGRAM_FRAGMENT "fragment::${AUTOSCRIBE_PROGRAM_FRAGMENT}")
+ endif()
+
+ set(PROGRAM_ENTRY "${PROGRAM_NAME} = (${AUTOSCRIBE_PROGRAM_VERTEX} << 16) | ${AUTOSCRIBE_PROGRAM_FRAGMENT},\n")
+ string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "${PROGRAM_ENTRY}")
+ string(CONCAT SHADER_PROGRAMS_ARRAY "${SHADER_PROGRAMS_ARRAY} ${SHADER_NAMESPACE}::program::${PROGRAM_NAME},\n")
+ endforeach()
+ string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "}; } // program \n")
+ endif()
+
+ # Finish the shader enums
+ string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "} // namespace ${SHADER_NAMESPACE}\n")
+ #file(RELATIVE_PATH RELATIVE_LIBRARY_DIR_PATH ${CMAKE_CURRENT_SOURCE_DIR} "${HIFI_LIBRARY_DIR}")
+ #foreach(HIFI_LIBRARY ${ARGN})
+ #list(APPEND HIFI_LIBRARIES_SHADER_INCLUDE_FILES ${HIFI_LIBRARY_DIR}/${HIFI_LIBRARY}/src)
+ #endforeach()
+ #endif()
+endmacro()
+
+macro(AUTOSCRIBE_SHADER_LIBS)
+ set(SCRIBE_COMMAND scribe)
+ set(SHREFLECT_COMMAND shreflect)
+ set(SHREFLECT_DEPENDENCY shreflect)
+
+ # Target dependant Custom rule on the SHADER_FILE
+ if (ANDROID)
+ set(GLPROFILE LINUX_GL)
+ set(SCRIBE_COMMAND ${NATIVE_SCRIBE})
+ set(SHREFLECT_COMMAND ${NATIVE_SHREFLECT})
+ unset(SHREFLECT_DEPENDENCY)
+ else()
+ if (APPLE)
+ set(GLPROFILE MAC_GL)
+ elseif(UNIX)
+ set(GLPROFILE LINUX_GL)
+ else()
+ set(GLPROFILE PC_GL)
+ endif()
+ endif()
+
+ # Start the shader IDs
+ set(SHADER_COUNT 1)
set(SHADERS_DIR "${CMAKE_CURRENT_BINARY_DIR}/shaders")
set(SHADER_ENUMS "")
file(MAKE_DIRECTORY ${SHADERS_DIR})
- unset(COMPILED_SHADERS)
- foreach(SHADER_LIB ${GLOBAL_SHADER_LIBS})
- get_property(LIB_SHADER_SOURCES GLOBAL PROPERTY ${SHADER_LIB}_SHADER_SOURCES)
- get_property(LIB_PROGRAMS GLOBAL PROPERTY ${SHADER_LIB}_PROGRAMS)
- list(REMOVE_DUPLICATES LIB_SHADER_SOURCES)
- string(REGEX REPLACE "[-]" "_" SHADER_NAMESPACE ${SHADER_LIB})
- list(APPEND HIFI_LIBRARIES_SHADER_INCLUDE_FILES "${CMAKE_SOURCE_DIR}/libraries/${SHADER_LIB}/src")
-
- unset(VERTEX_SHADERS)
- unset(FRAGMENT_SHADERS)
- unset(SHADER_HEADERS)
-
- foreach(SHADER_FILE ${LIB_SHADER_SOURCES})
- if (SHADER_FILE MATCHES ".*\\.slv")
- list(APPEND VERTEX_SHADERS ${SHADER_FILE})
- elseif (SHADER_FILE MATCHES ".*\\.slf")
- list(APPEND FRAGMENT_SHADERS ${SHADER_FILE})
- elseif (SHADER_FILE MATCHES ".*\\.slh")
- list(APPEND SHADER_HEADERS ${SHADER_FILE})
- endif()
- endforeach()
-
- if (DEFINED SHADER_HEADERS)
- list(REMOVE_DUPLICATES SHADER_HEADERS)
- source_group("${SHADER_LIB}/Headers" FILES ${SHADER_HEADERS})
- list(APPEND ALL_SHADER_HEADERS ${SHADER_HEADERS})
- list(APPEND ALL_SCRIBE_SHADERS ${SHADER_HEADERS})
- endif()
-
- string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "namespace ${SHADER_NAMESPACE} {\n")
- if (DEFINED VERTEX_SHADERS)
- list(REMOVE_DUPLICATES VERTEX_SHADERS)
- source_group("${SHADER_LIB}/Vertex" FILES ${VERTEX_SHADERS})
- list(APPEND ALL_SCRIBE_SHADERS ${VERTEX_SHADERS})
- string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "namespace vertex { enum {\n")
- foreach(SHADER ${VERTEX_SHADERS})
- process_shader_file()
- endforeach()
- string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "}; } // vertex \n")
- endif()
-
- if (DEFINED FRAGMENT_SHADERS)
- list(REMOVE_DUPLICATES FRAGMENT_SHADERS)
- source_group("${SHADER_LIB}/Fragment" FILES ${FRAGMENT_SHADERS})
- list(APPEND ALL_SCRIBE_SHADERS ${FRAGMENT_SHADERS})
- string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "namespace fragment { enum {\n")
- foreach(SHADER ${FRAGMENT_SHADERS})
- process_shader_file()
- endforeach()
- string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "}; } // fragment \n")
- endif()
-
- if (DEFINED LIB_PROGRAMS)
- string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "namespace program { enum {\n")
- foreach(LIB_PROGRAM ${LIB_PROGRAMS})
- get_property(LIB_PROGRAM_MAP GLOBAL PROPERTY ${LIB_PROGRAM})
- unpack_map(${LIB_PROGRAM_MAP})
- string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "${LIB_PROGRAM} = (${AUTOSCRIBE_PROGRAM_VERTEX} << 16) | ${AUTOSCRIBE_PROGRAM_FRAGMENT},\n")
- MATH(EXPR PROGRAM_COUNT "${PROGRAM_COUNT}+1")
- list(APPEND SHADER_ALL_PROGRAMS "${SHADER_NAMESPACE}::program::${LIB_PROGRAM}")
- endforeach()
- string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "}; } // program \n")
- endif()
- string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "} // namespace ${SHADER_NAMESPACE}\n")
+ #
+ # Scribe generation & program defintiion
+ #
+ foreach(SHADER_LIB ${ARGN})
+ AUTOSCRIBE_SHADER_LIB(${SHADER_LIB})
endforeach()
- set(SHADER_PROGRAMS_ARRAY "")
- foreach(SHADER_PROGRAM ${SHADER_ALL_PROGRAMS})
- string(CONCAT SHADER_PROGRAMS_ARRAY "${SHADER_PROGRAMS_ARRAY}" " ${SHADER_PROGRAM},\n")
- endforeach()
+ # Generate the library files
+ configure_file(
+ ShaderEnums.cpp.in
+ ${CMAKE_CURRENT_BINARY_DIR}/shaders/ShaderEnums.cpp)
+ configure_file(
+ ShaderEnums.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/shaders/ShaderEnums.h)
+ configure_file(
+ shaders.qrc.in
+ ${CMAKE_CURRENT_BINARY_DIR}/shaders.qrc)
- set(SHREFLECT_COMMAND shreflect)
- set(SHREFLECT_DEPENDENCY shreflect)
- if (ANDROID)
- set(SHREFLECT_COMMAND ${NATIVE_SHREFLECT})
- unset(SHREFLECT_DEPENDENCY)
- endif()
-
- set(SHADER_COUNT 0)
- foreach(COMPILED_SHADER ${COMPILED_SHADERS})
- set(REFLECTED_SHADER "${COMPILED_SHADER}.json")
- list(APPEND COMPILED_SHADER_REFLECTIONS ${REFLECTED_SHADER})
- string(CONCAT SHADER_QRC "${SHADER_QRC}" "${COMPILED_SHADER}\n")
- string(CONCAT SHADER_QRC "${SHADER_QRC}" "${REFLECTED_SHADER}\n")
- MATH(EXPR SHADER_COUNT "${SHADER_COUNT}+1")
- add_custom_command(
- OUTPUT ${REFLECTED_SHADER}
- COMMAND ${SHREFLECT_COMMAND} ${COMPILED_SHADER}
- DEPENDS ${SHREFLECT_DEPENDENCY} ${COMPILED_SHADER}
- )
- endforeach()
+ set(AUTOSCRIBE_SHADER_LIB_SRC "${CMAKE_CURRENT_BINARY_DIR}/shaders/ShaderEnums.h;${CMAKE_CURRENT_BINARY_DIR}/shaders/ShaderEnums.cpp")
+ set(QT_RESOURCES_FILE ${CMAKE_CURRENT_BINARY_DIR}/shaders.qrc)
# Custom targets required to force generation of the shaders via scribe
add_custom_target(scribe_shaders SOURCES ${ALL_SCRIBE_SHADERS})
add_custom_target(compiled_shaders SOURCES ${COMPILED_SHADERS})
- add_custom_target(reflected_shaders SOURCES ${COMPILED_SHADER_REFLECTIONS})
+ add_custom_target(reflected_shaders SOURCES ${REFLECTED_SHADERS})
set_target_properties(scribe_shaders PROPERTIES FOLDER "Shaders")
set_target_properties(compiled_shaders PROPERTIES FOLDER "Shaders")
set_target_properties(reflected_shaders PROPERTIES FOLDER "Shaders")
-
- configure_file(
- ShaderEnums.cpp.in
- ${CMAKE_CURRENT_BINARY_DIR}/shaders/ShaderEnums.cpp
- )
- configure_file(
- ShaderEnums.h.in
- ${CMAKE_CURRENT_BINARY_DIR}/shaders/ShaderEnums.h
- )
- configure_file(
- shaders.qrc.in
- ${CMAKE_CURRENT_BINARY_DIR}/shaders.qrc
- )
- set(AUTOSCRIBE_SHADER_LIB_SRC "${CMAKE_CURRENT_BINARY_DIR}/shaders/ShaderEnums.h;${CMAKE_CURRENT_BINARY_DIR}/shaders/ShaderEnums.cpp")
- list(APPEND AUTOSCRIBE_SHADER_LIB_SRC ${COMPILED_SHADERS})
- set(QT_RESOURCES_FILE ${CMAKE_CURRENT_BINARY_DIR}/shaders.qrc)
- get_property(GLOBAL_SHADER_SOURCES GLOBAL PROPERTY GLOBAL_SHADER_SOURCES)
- list(REMOVE_DUPLICATES GLOBAL_SHADER_SOURCES)
endmacro()
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 45ef336333..06217688a4 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -266,19 +266,10 @@ class RenderEventHandler : public QObject {
using Parent = QObject;
Q_OBJECT
public:
- RenderEventHandler(QOpenGLContext* context) {
- _renderContext = new OffscreenGLCanvas();
- _renderContext->setObjectName("RenderContext");
- _renderContext->create(context);
- if (!_renderContext->makeCurrent()) {
- qFatal("Unable to make rendering context current");
- }
- _renderContext->doneCurrent();
-
+ RenderEventHandler() {
// Transfer to a new thread
moveToNewNamedThread(this, "RenderThread", [this](QThread* renderThread) {
hifi::qt::addBlockingForbiddenThread("Render", renderThread);
- _renderContext->moveToThreadWithContext(renderThread);
qApp->_lastTimeRendered.start();
}, std::bind(&RenderEventHandler::initialize, this), QThread::HighestPriority);
}
@@ -288,9 +279,6 @@ private:
setObjectName("Render");
PROFILE_SET_THREAD_NAME("Render");
setCrashAnnotation("render_thread_id", std::to_string((size_t)QThread::currentThreadId()));
- if (!_renderContext->makeCurrent()) {
- qFatal("Unable to make rendering context current on render thread");
- }
}
void render() {
@@ -311,8 +299,6 @@ private:
}
return Parent::event(event);
}
-
- OffscreenGLCanvas* _renderContext { nullptr };
};
@@ -2695,26 +2681,14 @@ void Application::initializeGL() {
}
}
- // Build an offscreen GL context for the main thread.
- _offscreenContext = new OffscreenGLCanvas();
- _offscreenContext->setObjectName("MainThreadContext");
- _offscreenContext->create(_glWidget->qglContext());
- if (!_offscreenContext->makeCurrent()) {
- qFatal("Unable to make offscreen context current");
- }
- _offscreenContext->doneCurrent();
- _offscreenContext->setThreadContext();
+ _renderEventHandler = new RenderEventHandler();
+ // Build an offscreen GL context for the main thread.
_glWidget->makeCurrent();
glClearColor(0.2f, 0.2f, 0.2f, 1);
glClear(GL_COLOR_BUFFER_BIT);
_glWidget->swapBuffers();
- // Move the GL widget context to the render event handler thread
- _renderEventHandler = new RenderEventHandler(_glWidget->qglContext());
- if (!_offscreenContext->makeCurrent()) {
- qFatal("Unable to make offscreen context current");
- }
// Create the GPU backend
@@ -2727,9 +2701,6 @@ void Application::initializeGL() {
_gpuContext = std::make_shared();
DependencyManager::get()->setGPUContext(_gpuContext);
-
- // Restore the default main thread context
- _offscreenContext->makeCurrent();
}
static const QString SPLASH_SKYBOX{ "{\"ProceduralEntity\":{ \"version\":2, \"shaderUrl\":\"qrc:///shaders/splashSkybox.frag\" } }" };
@@ -2768,8 +2739,6 @@ void Application::initializeDisplayPlugins() {
// Submit a default frame to render until the engine starts up
updateRenderArgs(0.0f);
- _offscreenContext->makeCurrent();
-
#define ENABLE_SPLASH_FRAME 0
#if ENABLE_SPLASH_FRAME
{
@@ -2811,8 +2780,6 @@ void Application::initializeDisplayPlugins() {
}
void Application::initializeRenderEngine() {
- _offscreenContext->makeCurrent();
-
// FIXME: on low end systems os the shaders take up to 1 minute to compile, so we pause the deadlock watchdog thread.
DeadlockWatchdogThread::withPause([&] {
// Set up the render engine
@@ -4562,7 +4529,6 @@ void Application::idle() {
if (offscreenUi->size() != fromGlm(uiSize)) {
qCDebug(interfaceapp) << "Device pixel ratio changed, triggering resize to " << uiSize;
offscreenUi->resize(fromGlm(uiSize));
- _offscreenContext->makeCurrent();
}
}
@@ -4620,10 +4586,6 @@ void Application::idle() {
bool showWarnings = getLogger()->extraDebugging();
PerformanceWarning warn(showWarnings, "idle()");
- if (!_offscreenContext->makeCurrent()) {
- qFatal("Unable to make main thread context current");
- }
-
{
_gameWorkload.updateViews(_viewFrustum, getMyAvatar()->getHeadPosition());
_gameWorkload._engine->run();
@@ -4951,7 +4913,6 @@ QVector Application::pasteEntities(float x, float y, float z) {
}
void Application::init() {
- _offscreenContext->makeCurrent();
// Make sure Login state is up to date
DependencyManager::get()->toggleLoginDialog();
if (!DISABLE_DEFERRED) {
@@ -8342,7 +8303,7 @@ QOpenGLContext* Application::getPrimaryContext() {
}
bool Application::makeRenderingContextCurrent() {
- return _offscreenContext->makeCurrent();
+ return true;
}
bool Application::isForeground() const {
diff --git a/interface/src/Application.h b/interface/src/Application.h
index 66388afbde..742cf075f6 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -81,7 +81,6 @@
#include "Sound.h"
-class OffscreenGLCanvas;
class GLCanvas;
class FaceTracker;
class MainWindow;
@@ -554,7 +553,6 @@ private:
bool _previousSessionCrashed;
- OffscreenGLCanvas* _offscreenContext { nullptr };
DisplayPluginPointer _displayPlugin;
QMetaObject::Connection _displayPluginPresentConnection;
mutable std::mutex _displayPluginLock;
diff --git a/libraries/avatars-renderer/CMakeLists.txt b/libraries/avatars-renderer/CMakeLists.txt
index a70c8294d5..e6b6986e7b 100644
--- a/libraries/avatars-renderer/CMakeLists.txt
+++ b/libraries/avatars-renderer/CMakeLists.txt
@@ -1,5 +1,4 @@
set(TARGET_NAME avatars-renderer)
-AUTOSCRIBE_SHADER_LIB(gpu graphics render render-utils)
setup_hifi_library(Network Script)
link_hifi_libraries(shared gpu graphics animation model-networking script-engine render render-utils image trackers entities-renderer)
include_hifi_library_headers(avatars)
diff --git a/libraries/display-plugins/CMakeLists.txt b/libraries/display-plugins/CMakeLists.txt
index 529ef4c921..0674c9fd92 100644
--- a/libraries/display-plugins/CMakeLists.txt
+++ b/libraries/display-plugins/CMakeLists.txt
@@ -1,5 +1,4 @@
set(TARGET_NAME display-plugins)
-AUTOSCRIBE_SHADER_LIB(gpu display-plugins)
setup_hifi_library(Gui)
link_hifi_libraries(shared shaders plugins ui-plugins gl ui render-utils ${PLATFORM_GL_BACKEND})
include_hifi_library_headers(gpu)
diff --git a/libraries/display-plugins/src/display-plugins/InterleavedSrgbToLinear.slp b/libraries/display-plugins/src/display-plugins/InterleavedSrgbToLinear.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/display-plugins/src/display-plugins/InterleavedSrgbToLinear.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/display-plugins/src/display-plugins/SrgbToLinear.slp b/libraries/display-plugins/src/display-plugins/SrgbToLinear.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/display-plugins/src/display-plugins/SrgbToLinear.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/entities-renderer/src/entities-renderer/paintStroke.slp b/libraries/entities-renderer/src/entities-renderer/paintStroke.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/entities-renderer/src/entities-renderer/polyvox.slp b/libraries/entities-renderer/src/entities-renderer/polyvox.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/entities-renderer/src/entities-renderer/polyvox_fade.slp b/libraries/entities-renderer/src/entities-renderer/polyvox_fade.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/entities-renderer/src/entities-renderer/textured_particle.slp b/libraries/entities-renderer/src/entities-renderer/textured_particle.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/gpu/src/gpu/drawColor.slp b/libraries/gpu/src/gpu/drawColor.slp
new file mode 100644
index 0000000000..1c81242fed
--- /dev/null
+++ b/libraries/gpu/src/gpu/drawColor.slp
@@ -0,0 +1,3 @@
+VERTEX DrawTransformVertexPosition
+FRAGMENT DrawColor
+r
diff --git a/libraries/gpu/src/gpu/drawNothing.slp b/libraries/gpu/src/gpu/drawNothing.slp
new file mode 100644
index 0000000000..22e40db8fc
--- /dev/null
+++ b/libraries/gpu/src/gpu/drawNothing.slp
@@ -0,0 +1,2 @@
+VERTEX DrawVertexPosition
+FRAGMENT DrawNada
diff --git a/libraries/gpu/src/gpu/drawTexture.slp b/libraries/gpu/src/gpu/drawTexture.slp
new file mode 100644
index 0000000000..e04be84618
--- /dev/null
+++ b/libraries/gpu/src/gpu/drawTexture.slp
@@ -0,0 +1,2 @@
+VERTEX DrawUnitQuadTexcoord
+FRAGMENT DrawTexture
diff --git a/libraries/gpu/src/gpu/drawTextureOpaqueTexcoordRect.slp b/libraries/gpu/src/gpu/drawTextureOpaqueTexcoordRect.slp
new file mode 100644
index 0000000000..9b08a99e18
--- /dev/null
+++ b/libraries/gpu/src/gpu/drawTextureOpaqueTexcoordRect.slp
@@ -0,0 +1,2 @@
+VERTEX DrawTexcoordRectTransformUnitQuad
+FRAGMENT DrawTextureOpaque
diff --git a/libraries/gpu/src/gpu/drawTransformUnitQuadTextureOpaque.slp b/libraries/gpu/src/gpu/drawTransformUnitQuadTextureOpaque.slp
new file mode 100644
index 0000000000..5c76582568
--- /dev/null
+++ b/libraries/gpu/src/gpu/drawTransformUnitQuadTextureOpaque.slp
@@ -0,0 +1,2 @@
+VERTEX DrawTransformUnitQuad
+FRAGMENT DrawTextureOpaque
diff --git a/libraries/gpu/src/gpu/drawUnitQuatTextureOpaque.slp b/libraries/gpu/src/gpu/drawUnitQuatTextureOpaque.slp
new file mode 100644
index 0000000000..2b03c79f32
--- /dev/null
+++ b/libraries/gpu/src/gpu/drawUnitQuatTextureOpaque.slp
@@ -0,0 +1,2 @@
+VERTEX DrawUnitQuadTexcoord
+FRAGMENT DrawTextureOpaque
diff --git a/libraries/graphics/src/graphics/skybox.slp b/libraries/graphics/src/graphics/skybox.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/animdebugdraw.slp b/libraries/render-utils/src/render-utils/animdebugdraw.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/bloomApply.slp b/libraries/render-utils/src/render-utils/bloomApply.slp
new file mode 100644
index 0000000000..2fd542f895
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/bloomApply.slp
@@ -0,0 +1,2 @@
+VERTEX gpu::vertex::DrawTransformUnitQuad
+FRAGMENT BloomApply
diff --git a/libraries/render-utils/src/render-utils/bloomThreshold.slp b/libraries/render-utils/src/render-utils/bloomThreshold.slp
new file mode 100644
index 0000000000..9b39c9fb5c
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/bloomThreshold.slp
@@ -0,0 +1,2 @@
+VERTEX gpu::vertex::DrawTransformUnitQuad
+FRAGMENT BloomThreshold
diff --git a/libraries/render-utils/src/render-utils/directional_ambient_light.slp b/libraries/render-utils/src/render-utils/directional_ambient_light.slp
new file mode 100644
index 0000000000..3aeca942ab
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/directional_ambient_light.slp
@@ -0,0 +1 @@
+VERTEX deferred_light
diff --git a/libraries/render-utils/src/render-utils/directional_ambient_light_shadow.slp b/libraries/render-utils/src/render-utils/directional_ambient_light_shadow.slp
new file mode 100644
index 0000000000..3aeca942ab
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/directional_ambient_light_shadow.slp
@@ -0,0 +1 @@
+VERTEX deferred_light
diff --git a/libraries/render-utils/src/render-utils/directional_skybox_light.slp b/libraries/render-utils/src/render-utils/directional_skybox_light.slp
new file mode 100644
index 0000000000..3aeca942ab
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/directional_skybox_light.slp
@@ -0,0 +1 @@
+VERTEX deferred_light
diff --git a/libraries/render-utils/src/render-utils/directional_skybox_light_shadow.slp b/libraries/render-utils/src/render-utils/directional_skybox_light_shadow.slp
new file mode 100644
index 0000000000..3aeca942ab
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/directional_skybox_light_shadow.slp
@@ -0,0 +1 @@
+VERTEX deferred_light
diff --git a/libraries/render-utils/src/render-utils/drawWorkloadProxy.slp b/libraries/render-utils/src/render-utils/drawWorkloadProxy.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/drawWorkloadView.slp b/libraries/render-utils/src/render-utils/drawWorkloadView.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/forward_model.slp b/libraries/render-utils/src/render-utils/forward_model.slp
new file mode 100644
index 0000000000..81ac672062
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_model.slp
@@ -0,0 +1 @@
+VERTEX model
diff --git a/libraries/render-utils/src/render-utils/forward_model_normal_map.slp b/libraries/render-utils/src/render-utils/forward_model_normal_map.slp
new file mode 100644
index 0000000000..c50be6285b
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_model_normal_map.slp
@@ -0,0 +1 @@
+VERTEX model_normal_map
diff --git a/libraries/render-utils/src/render-utils/forward_model_normal_map_translucent.slp b/libraries/render-utils/src/render-utils/forward_model_normal_map_translucent.slp
new file mode 100644
index 0000000000..0979918b98
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_model_normal_map_translucent.slp
@@ -0,0 +1,2 @@
+VERTEX model_normal_map
+FRAGMENT forward_model_translucent
diff --git a/libraries/render-utils/src/render-utils/forward_model_translucent.slp b/libraries/render-utils/src/render-utils/forward_model_translucent.slp
new file mode 100644
index 0000000000..81ac672062
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_model_translucent.slp
@@ -0,0 +1 @@
+VERTEX model
diff --git a/libraries/render-utils/src/render-utils/forward_model_unlit.slp b/libraries/render-utils/src/render-utils/forward_model_unlit.slp
new file mode 100644
index 0000000000..81ac672062
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_model_unlit.slp
@@ -0,0 +1 @@
+VERTEX model
diff --git a/libraries/render-utils/src/render-utils/forward_simple_textured.slp b/libraries/render-utils/src/render-utils/forward_simple_textured.slp
new file mode 100644
index 0000000000..10e6b388c4
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_simple_textured.slp
@@ -0,0 +1 @@
+VERTEX simple
diff --git a/libraries/render-utils/src/render-utils/forward_simple_textured_transparent.slp b/libraries/render-utils/src/render-utils/forward_simple_textured_transparent.slp
new file mode 100644
index 0000000000..10e6b388c4
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_simple_textured_transparent.slp
@@ -0,0 +1 @@
+VERTEX simple
diff --git a/libraries/render-utils/src/render-utils/forward_simple_textured_unlit.slp b/libraries/render-utils/src/render-utils/forward_simple_textured_unlit.slp
new file mode 100644
index 0000000000..10e6b388c4
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_simple_textured_unlit.slp
@@ -0,0 +1 @@
+VERTEX simple
diff --git a/libraries/render-utils/src/render-utils/forward_skin_model.slp b/libraries/render-utils/src/render-utils/forward_skin_model.slp
new file mode 100644
index 0000000000..962cf69ac2
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_skin_model.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model
+FRAGMENT forward_model
diff --git a/libraries/render-utils/src/render-utils/forward_skin_model_dq.slp b/libraries/render-utils/src/render-utils/forward_skin_model_dq.slp
new file mode 100644
index 0000000000..8fe119440f
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_skin_model_dq.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_dq
+FRAGMENT forward_model
diff --git a/libraries/render-utils/src/render-utils/forward_skin_model_normal_map.slp b/libraries/render-utils/src/render-utils/forward_skin_model_normal_map.slp
new file mode 100644
index 0000000000..5bae303829
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_skin_model_normal_map.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_normal_map
+FRAGMENT forward_model_normal_map
diff --git a/libraries/render-utils/src/render-utils/forward_skin_model_normal_map_dq.slp b/libraries/render-utils/src/render-utils/forward_skin_model_normal_map_dq.slp
new file mode 100644
index 0000000000..551b8367c7
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_skin_model_normal_map_dq.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_normal_map_dq
+FRAGMENT forward_model_normal_map
diff --git a/libraries/render-utils/src/render-utils/forward_skin_translucent.slp b/libraries/render-utils/src/render-utils/forward_skin_translucent.slp
new file mode 100644
index 0000000000..1468d52428
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_skin_translucent.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model
+FRAGMENT forward_model_translucent
diff --git a/libraries/render-utils/src/render-utils/forward_skin_translucent_dq.slp b/libraries/render-utils/src/render-utils/forward_skin_translucent_dq.slp
new file mode 100644
index 0000000000..688bf51ba2
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_skin_translucent_dq.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_dq
+FRAGMENT forward_model_translucent
diff --git a/libraries/render-utils/src/render-utils/forward_skin_translucent_normal_map.slp b/libraries/render-utils/src/render-utils/forward_skin_translucent_normal_map.slp
new file mode 100644
index 0000000000..fe3db07670
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_skin_translucent_normal_map.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_normal_map
+FRAGMENT forward_model_translucent
diff --git a/libraries/render-utils/src/render-utils/forward_skin_translucent_normal_map_dq.slp b/libraries/render-utils/src/render-utils/forward_skin_translucent_normal_map_dq.slp
new file mode 100644
index 0000000000..2012a77e89
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/forward_skin_translucent_normal_map_dq.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_normal_map_dq
+FRAGMENT forward_model_translucent
diff --git a/libraries/render-utils/src/render-utils/fxaa_blend.slp b/libraries/render-utils/src/render-utils/fxaa_blend.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/fxaa_blend.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render-utils/src/render-utils/glowLine.slp b/libraries/render-utils/src/render-utils/glowLine.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/grid.slp b/libraries/render-utils/src/render-utils/grid.slp
new file mode 100644
index 0000000000..c81b208f63
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/grid.slp
@@ -0,0 +1 @@
+VERTEX standardTransformPNTC
diff --git a/libraries/render-utils/src/render-utils/haze.slp b/libraries/render-utils/src/render-utils/haze.slp
new file mode 100644
index 0000000000..805b855c8d
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/haze.slp
@@ -0,0 +1,2 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
+FRAGMENT Haze
diff --git a/libraries/render-utils/src/render-utils/highlight.slp b/libraries/render-utils/src/render-utils/highlight.slp
new file mode 100644
index 0000000000..269774815b
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/highlight.slp
@@ -0,0 +1,2 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
+FRAGMENT Highlight
diff --git a/libraries/render-utils/src/render-utils/highlight_aabox.slp b/libraries/render-utils/src/render-utils/highlight_aabox.slp
new file mode 100644
index 0000000000..a6f94fa285
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/highlight_aabox.slp
@@ -0,0 +1,2 @@
+VERTEX Highlight_aabox
+FRAGMENT nop
diff --git a/libraries/render-utils/src/render-utils/highlight_filled.slp b/libraries/render-utils/src/render-utils/highlight_filled.slp
new file mode 100644
index 0000000000..166afd74be
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/highlight_filled.slp
@@ -0,0 +1,2 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
+FRAGMENT Highlight_filled
diff --git a/libraries/render-utils/src/render-utils/hmd_ui.slp b/libraries/render-utils/src/render-utils/hmd_ui.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/lightClusters_drawClusterContent.slp b/libraries/render-utils/src/render-utils/lightClusters_drawClusterContent.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/lightClusters_drawClusterContent.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render-utils/src/render-utils/lightClusters_drawClusterFromDepth.slp b/libraries/render-utils/src/render-utils/lightClusters_drawClusterFromDepth.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/lightClusters_drawClusterFromDepth.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render-utils/src/render-utils/lightClusters_drawGrid.slp b/libraries/render-utils/src/render-utils/lightClusters_drawGrid.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/local_lights_drawOutline.slp b/libraries/render-utils/src/render-utils/local_lights_drawOutline.slp
new file mode 100644
index 0000000000..3aeca942ab
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/local_lights_drawOutline.slp
@@ -0,0 +1 @@
+VERTEX deferred_light
diff --git a/libraries/render-utils/src/render-utils/local_lights_shading.slp b/libraries/render-utils/src/render-utils/local_lights_shading.slp
new file mode 100644
index 0000000000..3aeca942ab
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/local_lights_shading.slp
@@ -0,0 +1 @@
+VERTEX deferred_light
diff --git a/libraries/render-utils/src/render-utils/model.slp b/libraries/render-utils/src/render-utils/model.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_fade.slp b/libraries/render-utils/src/render-utils/model_fade.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_lightmap.slp b/libraries/render-utils/src/render-utils/model_lightmap.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_lightmap_fade.slp b/libraries/render-utils/src/render-utils/model_lightmap_fade.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_lightmap_normal_map.slp b/libraries/render-utils/src/render-utils/model_lightmap_normal_map.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_lightmap_normal_map_fade.slp b/libraries/render-utils/src/render-utils/model_lightmap_normal_map_fade.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_normal_map.slp b/libraries/render-utils/src/render-utils/model_normal_map.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_normal_map_fade.slp b/libraries/render-utils/src/render-utils/model_normal_map_fade.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_shadow.slp b/libraries/render-utils/src/render-utils/model_shadow.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_shadow_fade.slp b/libraries/render-utils/src/render-utils/model_shadow_fade.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_translucent.slp b/libraries/render-utils/src/render-utils/model_translucent.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_translucent_fade.slp b/libraries/render-utils/src/render-utils/model_translucent_fade.slp
new file mode 100644
index 0000000000..ba3a685b5b
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/model_translucent_fade.slp
@@ -0,0 +1 @@
+VERTEX model_fade
diff --git a/libraries/render-utils/src/render-utils/model_translucent_normal_map.slp b/libraries/render-utils/src/render-utils/model_translucent_normal_map.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/model_translucent_normal_map_fade.slp b/libraries/render-utils/src/render-utils/model_translucent_normal_map_fade.slp
new file mode 100644
index 0000000000..01953a9891
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/model_translucent_normal_map_fade.slp
@@ -0,0 +1 @@
+VERTEX model_translucent_normal_map
diff --git a/libraries/render-utils/src/render-utils/model_translucent_unlit.slp b/libraries/render-utils/src/render-utils/model_translucent_unlit.slp
new file mode 100644
index 0000000000..81ac672062
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/model_translucent_unlit.slp
@@ -0,0 +1 @@
+VERTEX model
diff --git a/libraries/render-utils/src/render-utils/model_translucent_unlit_fade.slp b/libraries/render-utils/src/render-utils/model_translucent_unlit_fade.slp
new file mode 100644
index 0000000000..ba3a685b5b
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/model_translucent_unlit_fade.slp
@@ -0,0 +1 @@
+VERTEX model_fade
diff --git a/libraries/render-utils/src/render-utils/model_unlit.slp b/libraries/render-utils/src/render-utils/model_unlit.slp
new file mode 100644
index 0000000000..81ac672062
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/model_unlit.slp
@@ -0,0 +1 @@
+VERTEX model
diff --git a/libraries/render-utils/src/render-utils/model_unlit_fade.slp b/libraries/render-utils/src/render-utils/model_unlit_fade.slp
new file mode 100644
index 0000000000..ba3a685b5b
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/model_unlit_fade.slp
@@ -0,0 +1 @@
+VERTEX model_fade
diff --git a/libraries/render-utils/src/render-utils/parabola.slp b/libraries/render-utils/src/render-utils/parabola.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/sdf_text3D.slp b/libraries/render-utils/src/render-utils/sdf_text3D.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render-utils/src/render-utils/sdf_text3D_transparent.slp b/libraries/render-utils/src/render-utils/sdf_text3D_transparent.slp
new file mode 100644
index 0000000000..3eea3a0da0
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/sdf_text3D_transparent.slp
@@ -0,0 +1 @@
+VERTEX sdf_text3D
diff --git a/libraries/render-utils/src/render-utils/simple.slp b/libraries/render-utils/src/render-utils/simple.slp
new file mode 100644
index 0000000000..8a6e2e4f99
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simple.slp
@@ -0,0 +1 @@
+FRAGMENT forward_simple_textured
diff --git a/libraries/render-utils/src/render-utils/simpleTranslucent.slp b/libraries/render-utils/src/render-utils/simpleTranslucent.slp
new file mode 100644
index 0000000000..0163b09b84
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simpleTranslucent.slp
@@ -0,0 +1,2 @@
+VERTEX simple
+FRAGMENT forward_simple_textured_transparent
diff --git a/libraries/render-utils/src/render-utils/simpleTranslucentUnlit.slp b/libraries/render-utils/src/render-utils/simpleTranslucentUnlit.slp
new file mode 100644
index 0000000000..f1d1ec39be
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simpleTranslucentUnlit.slp
@@ -0,0 +1,2 @@
+VERTEX simple
+FRAGMENT simple_transparent_textured_unlit
diff --git a/libraries/render-utils/src/render-utils/simpleUnlit.slp b/libraries/render-utils/src/render-utils/simpleUnlit.slp
new file mode 100644
index 0000000000..ab491aa290
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simpleUnlit.slp
@@ -0,0 +1,2 @@
+VERTEX simple
+FRAGMENT forward_simple_textured_unlit
diff --git a/libraries/render-utils/src/render-utils/simple_opaque_web_browser.slp b/libraries/render-utils/src/render-utils/simple_opaque_web_browser.slp
new file mode 100644
index 0000000000..10e6b388c4
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simple_opaque_web_browser.slp
@@ -0,0 +1 @@
+VERTEX simple
diff --git a/libraries/render-utils/src/render-utils/simple_textured.slp b/libraries/render-utils/src/render-utils/simple_textured.slp
new file mode 100644
index 0000000000..10e6b388c4
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simple_textured.slp
@@ -0,0 +1 @@
+VERTEX simple
diff --git a/libraries/render-utils/src/render-utils/simple_textured_fade.slp b/libraries/render-utils/src/render-utils/simple_textured_fade.slp
new file mode 100644
index 0000000000..9be0f525ad
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simple_textured_fade.slp
@@ -0,0 +1 @@
+VERTEX simple_fade
diff --git a/libraries/render-utils/src/render-utils/simple_textured_unlit.slp b/libraries/render-utils/src/render-utils/simple_textured_unlit.slp
new file mode 100644
index 0000000000..10e6b388c4
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simple_textured_unlit.slp
@@ -0,0 +1 @@
+VERTEX simple
diff --git a/libraries/render-utils/src/render-utils/simple_textured_unlit_fade.slp b/libraries/render-utils/src/render-utils/simple_textured_unlit_fade.slp
new file mode 100644
index 0000000000..9be0f525ad
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simple_textured_unlit_fade.slp
@@ -0,0 +1 @@
+VERTEX simple_fade
diff --git a/libraries/render-utils/src/render-utils/simple_transparent_textured.slp b/libraries/render-utils/src/render-utils/simple_transparent_textured.slp
new file mode 100644
index 0000000000..10e6b388c4
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simple_transparent_textured.slp
@@ -0,0 +1 @@
+VERTEX simple
diff --git a/libraries/render-utils/src/render-utils/simple_transparent_textured_fade.slp b/libraries/render-utils/src/render-utils/simple_transparent_textured_fade.slp
new file mode 100644
index 0000000000..9be0f525ad
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simple_transparent_textured_fade.slp
@@ -0,0 +1 @@
+VERTEX simple_fade
diff --git a/libraries/render-utils/src/render-utils/simple_transparent_textured_unlit.slp b/libraries/render-utils/src/render-utils/simple_transparent_textured_unlit.slp
new file mode 100644
index 0000000000..10e6b388c4
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simple_transparent_textured_unlit.slp
@@ -0,0 +1 @@
+VERTEX simple
diff --git a/libraries/render-utils/src/render-utils/simple_transparent_textured_unlit_fade.slp b/libraries/render-utils/src/render-utils/simple_transparent_textured_unlit_fade.slp
new file mode 100644
index 0000000000..9be0f525ad
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simple_transparent_textured_unlit_fade.slp
@@ -0,0 +1 @@
+VERTEX simple_fade
diff --git a/libraries/render-utils/src/render-utils/simple_transparent_web_browser.slp b/libraries/render-utils/src/render-utils/simple_transparent_web_browser.slp
new file mode 100644
index 0000000000..10e6b388c4
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/simple_transparent_web_browser.slp
@@ -0,0 +1 @@
+VERTEX simple
diff --git a/libraries/render-utils/src/render-utils/skin_model.slp b/libraries/render-utils/src/render-utils/skin_model.slp
new file mode 100644
index 0000000000..d6466a6aa4
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model.slp
@@ -0,0 +1 @@
+FRAGMENT model
diff --git a/libraries/render-utils/src/render-utils/skin_model_dq.slp b/libraries/render-utils/src/render-utils/skin_model_dq.slp
new file mode 100644
index 0000000000..d6466a6aa4
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_dq.slp
@@ -0,0 +1 @@
+FRAGMENT model
diff --git a/libraries/render-utils/src/render-utils/skin_model_fade.slp b/libraries/render-utils/src/render-utils/skin_model_fade.slp
new file mode 100644
index 0000000000..2b354b0832
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_fade.slp
@@ -0,0 +1 @@
+FRAGMENT model_fade
diff --git a/libraries/render-utils/src/render-utils/skin_model_fade_dq.slp b/libraries/render-utils/src/render-utils/skin_model_fade_dq.slp
new file mode 100644
index 0000000000..2b354b0832
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_fade_dq.slp
@@ -0,0 +1 @@
+FRAGMENT model_fade
diff --git a/libraries/render-utils/src/render-utils/skin_model_normal_map.slp b/libraries/render-utils/src/render-utils/skin_model_normal_map.slp
new file mode 100644
index 0000000000..c9d4016041
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_normal_map.slp
@@ -0,0 +1 @@
+FRAGMENT model_normal_map
diff --git a/libraries/render-utils/src/render-utils/skin_model_normal_map_dq.slp b/libraries/render-utils/src/render-utils/skin_model_normal_map_dq.slp
new file mode 100644
index 0000000000..c9d4016041
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_normal_map_dq.slp
@@ -0,0 +1 @@
+FRAGMENT model_normal_map
diff --git a/libraries/render-utils/src/render-utils/skin_model_normal_map_fade.slp b/libraries/render-utils/src/render-utils/skin_model_normal_map_fade.slp
new file mode 100644
index 0000000000..36e92e03e8
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_normal_map_fade.slp
@@ -0,0 +1 @@
+FRAGMENT model_normal_map_fade
diff --git a/libraries/render-utils/src/render-utils/skin_model_normal_map_fade_dq.slp b/libraries/render-utils/src/render-utils/skin_model_normal_map_fade_dq.slp
new file mode 100644
index 0000000000..36e92e03e8
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_normal_map_fade_dq.slp
@@ -0,0 +1 @@
+FRAGMENT model_normal_map_fade
diff --git a/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent.slp b/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent.slp
new file mode 100644
index 0000000000..c1b0ee2841
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_normal_map_fade
+FRAGMENT model_translucent_normal_map
diff --git a/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent_dq.slp b/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent_dq.slp
new file mode 100644
index 0000000000..58947f1bae
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent_dq.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_normal_map_fade_dq
+FRAGMENT model_translucent_normal_map
diff --git a/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent_fade.slp b/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent_fade.slp
new file mode 100644
index 0000000000..6698d1b7be
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent_fade.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_normal_map_fade
+FRAGMENT model_translucent_normal_map_fade
diff --git a/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent_fade_dq.slp b/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent_fade_dq.slp
new file mode 100644
index 0000000000..d2e938bd2a
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_normal_map_translucent_fade_dq.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_normal_map_fade_dq
+FRAGMENT model_translucent_normal_map_fade
diff --git a/libraries/render-utils/src/render-utils/skin_model_shadow.slp b/libraries/render-utils/src/render-utils/skin_model_shadow.slp
new file mode 100644
index 0000000000..f356a5638d
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_shadow.slp
@@ -0,0 +1 @@
+FRAGMENT model_shadow
diff --git a/libraries/render-utils/src/render-utils/skin_model_shadow_dq.slp b/libraries/render-utils/src/render-utils/skin_model_shadow_dq.slp
new file mode 100644
index 0000000000..f356a5638d
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_shadow_dq.slp
@@ -0,0 +1 @@
+FRAGMENT model_shadow
diff --git a/libraries/render-utils/src/render-utils/skin_model_shadow_fade.slp b/libraries/render-utils/src/render-utils/skin_model_shadow_fade.slp
new file mode 100644
index 0000000000..f356a5638d
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_shadow_fade.slp
@@ -0,0 +1 @@
+FRAGMENT model_shadow
diff --git a/libraries/render-utils/src/render-utils/skin_model_shadow_fade_dq.slp b/libraries/render-utils/src/render-utils/skin_model_shadow_fade_dq.slp
new file mode 100644
index 0000000000..a7e3f3328b
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_shadow_fade_dq.slp
@@ -0,0 +1 @@
+FRAGMENT model_shadow_fade
diff --git a/libraries/render-utils/src/render-utils/skin_model_translucent.slp b/libraries/render-utils/src/render-utils/skin_model_translucent.slp
new file mode 100644
index 0000000000..469224f9fd
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_translucent.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_fade
+FRAGMENT model_translucent
diff --git a/libraries/render-utils/src/render-utils/skin_model_translucent_dq.slp b/libraries/render-utils/src/render-utils/skin_model_translucent_dq.slp
new file mode 100644
index 0000000000..fdac5044ce
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_translucent_dq.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_fade_dq
+FRAGMENT model_translucent
diff --git a/libraries/render-utils/src/render-utils/skin_model_translucent_fade.slp b/libraries/render-utils/src/render-utils/skin_model_translucent_fade.slp
new file mode 100644
index 0000000000..c6ff435342
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_translucent_fade.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_fade
+FRAGMENT model_translucent_fade
diff --git a/libraries/render-utils/src/render-utils/skin_model_translucent_fade_dq.slp b/libraries/render-utils/src/render-utils/skin_model_translucent_fade_dq.slp
new file mode 100644
index 0000000000..7361a0fd71
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/skin_model_translucent_fade_dq.slp
@@ -0,0 +1,2 @@
+VERTEX skin_model_fade_dq
+FRAGMENT model_translucent_fade
diff --git a/libraries/render-utils/src/render-utils/ssao_debugOcclusion.slp b/libraries/render-utils/src/render-utils/ssao_debugOcclusion.slp
new file mode 100644
index 0000000000..d4d8ec4b01
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/ssao_debugOcclusion.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
diff --git a/libraries/render-utils/src/render-utils/ssao_makeHorizontalBlur.slp b/libraries/render-utils/src/render-utils/ssao_makeHorizontalBlur.slp
new file mode 100644
index 0000000000..d4d8ec4b01
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/ssao_makeHorizontalBlur.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
diff --git a/libraries/render-utils/src/render-utils/ssao_makeOcclusion.slp b/libraries/render-utils/src/render-utils/ssao_makeOcclusion.slp
new file mode 100644
index 0000000000..d4d8ec4b01
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/ssao_makeOcclusion.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
diff --git a/libraries/render-utils/src/render-utils/ssao_makeVerticalBlur.slp b/libraries/render-utils/src/render-utils/ssao_makeVerticalBlur.slp
new file mode 100644
index 0000000000..d4d8ec4b01
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/ssao_makeVerticalBlur.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
diff --git a/libraries/render-utils/src/render-utils/standardDrawTexture.slp b/libraries/render-utils/src/render-utils/standardDrawTexture.slp
new file mode 100644
index 0000000000..c81b208f63
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/standardDrawTexture.slp
@@ -0,0 +1 @@
+VERTEX standardTransformPNTC
diff --git a/libraries/render-utils/src/render-utils/standardDrawTextureNoBlend.slp b/libraries/render-utils/src/render-utils/standardDrawTextureNoBlend.slp
new file mode 100644
index 0000000000..c81b208f63
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/standardDrawTextureNoBlend.slp
@@ -0,0 +1 @@
+VERTEX standardTransformPNTC
diff --git a/libraries/render-utils/src/render-utils/stencil_drawMask.slp b/libraries/render-utils/src/render-utils/stencil_drawMask.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/stencil_drawMask.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render-utils/src/render-utils/subsurfaceScattering_drawScattering.slp b/libraries/render-utils/src/render-utils/subsurfaceScattering_drawScattering.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/subsurfaceScattering_drawScattering.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render-utils/src/render-utils/subsurfaceScattering_makeLUT.slp b/libraries/render-utils/src/render-utils/subsurfaceScattering_makeLUT.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/subsurfaceScattering_makeLUT.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render-utils/src/render-utils/subsurfaceScattering_makeProfile.slp b/libraries/render-utils/src/render-utils/subsurfaceScattering_makeProfile.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/subsurfaceScattering_makeProfile.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render-utils/src/render-utils/subsurfaceScattering_makeSpecularBeckmann.slp b/libraries/render-utils/src/render-utils/subsurfaceScattering_makeSpecularBeckmann.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/subsurfaceScattering_makeSpecularBeckmann.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render-utils/src/render-utils/surfaceGeometry_downsampleDepthNormal.slp b/libraries/render-utils/src/render-utils/surfaceGeometry_downsampleDepthNormal.slp
new file mode 100644
index 0000000000..d4d8ec4b01
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/surfaceGeometry_downsampleDepthNormal.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
diff --git a/libraries/render-utils/src/render-utils/surfaceGeometry_makeCurvature.slp b/libraries/render-utils/src/render-utils/surfaceGeometry_makeCurvature.slp
new file mode 100644
index 0000000000..d4d8ec4b01
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/surfaceGeometry_makeCurvature.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
diff --git a/libraries/render-utils/src/render-utils/surfaceGeometry_makeLinearDepth.slp b/libraries/render-utils/src/render-utils/surfaceGeometry_makeLinearDepth.slp
new file mode 100644
index 0000000000..d4d8ec4b01
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/surfaceGeometry_makeLinearDepth.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
diff --git a/libraries/render-utils/src/render-utils/taa.slp b/libraries/render-utils/src/render-utils/taa.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/taa.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render-utils/src/render-utils/taa_blend.slp b/libraries/render-utils/src/render-utils/taa_blend.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/taa_blend.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render-utils/src/render-utils/toneMapping.slp b/libraries/render-utils/src/render-utils/toneMapping.slp
new file mode 100644
index 0000000000..d4d8ec4b01
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/toneMapping.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
diff --git a/libraries/render-utils/src/render-utils/velocityBuffer_cameraMotion.slp b/libraries/render-utils/src/render-utils/velocityBuffer_cameraMotion.slp
new file mode 100644
index 0000000000..d4d8ec4b01
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/velocityBuffer_cameraMotion.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord
diff --git a/libraries/render-utils/src/render-utils/zone_drawAmbient.slp b/libraries/render-utils/src/render-utils/zone_drawAmbient.slp
new file mode 100644
index 0000000000..a5c2bb33e6
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/zone_drawAmbient.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawTransformUnitQuad
diff --git a/libraries/render-utils/src/render-utils/zone_drawKeyLight.slp b/libraries/render-utils/src/render-utils/zone_drawKeyLight.slp
new file mode 100644
index 0000000000..a5c2bb33e6
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/zone_drawKeyLight.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawTransformUnitQuad
diff --git a/libraries/render-utils/src/render-utils/zone_drawSkybox.slp b/libraries/render-utils/src/render-utils/zone_drawSkybox.slp
new file mode 100644
index 0000000000..a5c2bb33e6
--- /dev/null
+++ b/libraries/render-utils/src/render-utils/zone_drawSkybox.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawTransformUnitQuad
diff --git a/libraries/render/src/render/blurGaussianDepthAwareH.slp b/libraries/render/src/render/blurGaussianDepthAwareH.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render/src/render/blurGaussianDepthAwareH.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render/src/render/blurGaussianDepthAwareV.slp b/libraries/render/src/render/blurGaussianDepthAwareV.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render/src/render/blurGaussianDepthAwareV.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render/src/render/blurGaussianH.slp b/libraries/render/src/render/blurGaussianH.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render/src/render/blurGaussianH.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render/src/render/blurGaussianV.slp b/libraries/render/src/render/blurGaussianV.slp
new file mode 100644
index 0000000000..c2c4bfbebd
--- /dev/null
+++ b/libraries/render/src/render/blurGaussianV.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawUnitQuadTexcoord
diff --git a/libraries/render/src/render/drawCellBounds.slp b/libraries/render/src/render/drawCellBounds.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render/src/render/drawItemBounds.slp b/libraries/render/src/render/drawItemBounds.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render/src/render/drawItemStatus.slp b/libraries/render/src/render/drawItemStatus.slp
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/render/src/render/drawLODReticle.slp b/libraries/render/src/render/drawLODReticle.slp
new file mode 100644
index 0000000000..a5c2bb33e6
--- /dev/null
+++ b/libraries/render/src/render/drawLODReticle.slp
@@ -0,0 +1 @@
+VERTEX gpu::vertex::DrawTransformUnitQuad
diff --git a/libraries/shaders/CMakeLists.txt b/libraries/shaders/CMakeLists.txt
index 4f6db48c08..a065c635e7 100644
--- a/libraries/shaders/CMakeLists.txt
+++ b/libraries/shaders/CMakeLists.txt
@@ -1,184 +1,7 @@
-
-set(TARGET_NAME gpu)
-AUTOSCRIBE_SHADER_LIB(gpu)
-AUTOSCRIBE_PROGRAM(NAME drawColor VERTEX DrawTransformVertexPosition FRAGMENT DrawColor)
-AUTOSCRIBE_PROGRAM(NAME drawTransformUnitQuadTextureOpaque VERTEX DrawTransformUnitQuad FRAGMENT DrawTextureOpaque)
-AUTOSCRIBE_PROGRAM(NAME drawTexture VERTEX DrawUnitQuadTexcoord FRAGMENT DrawTexture)
-AUTOSCRIBE_PROGRAM(NAME drawUnitQuatTextureOpaque VERTEX DrawUnitQuadTexcoord FRAGMENT DrawTextureOpaque)
-AUTOSCRIBE_PROGRAM(NAME drawTextureOpaqueTexcoordRect VERTEX DrawTexcoordRectTransformUnitQuad FRAGMENT DrawTextureOpaque)
-AUTOSCRIBE_PROGRAM(NAME drawNothing VERTEX DrawVertexPosition FRAGMENT DrawNada)
-
-set(TARGET_NAME graphics)
-AUTOSCRIBE_SHADER_LIB(gpu)
-AUTOSCRIBE_PROGRAM(NAME skybox)
-
-set(TARGET_NAME display-plugins)
-AUTOSCRIBE_SHADER_LIB(display-plugins)
-AUTOSCRIBE_PROGRAM(NAME InterleavedSrgbToLinear VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-AUTOSCRIBE_PROGRAM(NAME SrgbToLinear VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-
-set(TARGET_NAME procedural)
-AUTOSCRIBE_SHADER_LIB(gpu graphics)
-
-set(TARGET_NAME render)
-AUTOSCRIBE_SHADER_LIB(gpu graphics)
-AUTOSCRIBE_PROGRAM(NAME drawCellBounds)
-AUTOSCRIBE_PROGRAM(NAME drawItemBounds)
-AUTOSCRIBE_PROGRAM(NAME drawItemStatus)
-AUTOSCRIBE_PROGRAM(NAME drawLODReticle VERTEX gpu::vertex::DrawTransformUnitQuad)
-AUTOSCRIBE_PROGRAM(NAME blurGaussianV VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-AUTOSCRIBE_PROGRAM(NAME blurGaussianH VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-AUTOSCRIBE_PROGRAM(NAME blurGaussianDepthAwareV VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-AUTOSCRIBE_PROGRAM(NAME blurGaussianDepthAwareH VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-
-set(TARGET_NAME render-utils)
-AUTOSCRIBE_SHADER_LIB(gpu graphics render)
-AUTOSCRIBE_PROGRAM(NAME animdebugdraw)
-AUTOSCRIBE_PROGRAM(NAME bloomThreshold VERTEX gpu::vertex::DrawTransformUnitQuad FRAGMENT BloomThreshold)
-AUTOSCRIBE_PROGRAM(NAME bloomApply VERTEX gpu::vertex::DrawTransformUnitQuad FRAGMENT BloomApply)
-AUTOSCRIBE_PROGRAM(NAME directional_ambient_light VERTEX deferred_light)
-AUTOSCRIBE_PROGRAM(NAME directional_ambient_light_shadow VERTEX deferred_light)
-AUTOSCRIBE_PROGRAM(NAME directional_skybox_light VERTEX deferred_light)
-AUTOSCRIBE_PROGRAM(NAME directional_skybox_light_shadow VERTEX deferred_light)
-AUTOSCRIBE_PROGRAM(NAME local_lights_shading VERTEX deferred_light)
-AUTOSCRIBE_PROGRAM(NAME local_lights_drawOutline VERTEX deferred_light)
-AUTOSCRIBE_PROGRAM(NAME forward_simple_textured VERTEX simple)
-AUTOSCRIBE_PROGRAM(NAME forward_simple_textured_unlit VERTEX simple)
-AUTOSCRIBE_PROGRAM(NAME forward_simple_textured_transparent VERTEX simple)
-AUTOSCRIBE_PROGRAM(NAME fxaa_blend VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-AUTOSCRIBE_PROGRAM(NAME glowLine)
-AUTOSCRIBE_PROGRAM(NAME grid VERTEX standardTransformPNTC)
-AUTOSCRIBE_PROGRAM(NAME hmd_ui)
-AUTOSCRIBE_PROGRAM(NAME drawWorkloadProxy)
-AUTOSCRIBE_PROGRAM(NAME drawWorkloadView)
-AUTOSCRIBE_PROGRAM(NAME haze VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord FRAGMENT Haze)
-AUTOSCRIBE_PROGRAM(NAME highlight_aabox VERTEX Highlight_aabox FRAGMENT nop)
-AUTOSCRIBE_PROGRAM(NAME highlight VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord FRAGMENT Highlight)
-AUTOSCRIBE_PROGRAM(NAME highlight_filled VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord FRAGMENT Highlight_filled)
-AUTOSCRIBE_PROGRAM(NAME lightClusters_drawGrid)
-AUTOSCRIBE_PROGRAM(NAME lightClusters_drawClusterFromDepth VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-AUTOSCRIBE_PROGRAM(NAME lightClusters_drawClusterContent VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-AUTOSCRIBE_PROGRAM(NAME simple_opaque_web_browser VERTEX simple)
-AUTOSCRIBE_PROGRAM(NAME simple_transparent_web_browser VERTEX simple)
-AUTOSCRIBE_PROGRAM(NAME simple_textured VERTEX simple)
-AUTOSCRIBE_PROGRAM(NAME simple_textured_unlit VERTEX simple)
-AUTOSCRIBE_PROGRAM(NAME simple_transparent_textured VERTEX simple)
-AUTOSCRIBE_PROGRAM(NAME simple_transparent_textured_unlit VERTEX simple)
-AUTOSCRIBE_PROGRAM(NAME simple_textured_fade VERTEX simple_fade)
-AUTOSCRIBE_PROGRAM(NAME simple_textured_unlit_fade VERTEX simple_fade)
-AUTOSCRIBE_PROGRAM(NAME simple_transparent_textured_fade VERTEX simple_fade)
-AUTOSCRIBE_PROGRAM(NAME simple_transparent_textured_unlit_fade VERTEX simple_fade)
-
-AUTOSCRIBE_PROGRAM(NAME parabola)
-
-AUTOSCRIBE_PROGRAM(NAME sdf_text3D)
-AUTOSCRIBE_PROGRAM(NAME sdf_text3D_transparent VERTEX sdf_text3D)
-
-AUTOSCRIBE_PROGRAM(NAME ssao_makeOcclusion VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord)
-AUTOSCRIBE_PROGRAM(NAME ssao_makeHorizontalBlur VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord)
-AUTOSCRIBE_PROGRAM(NAME ssao_makeVerticalBlur VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord)
-AUTOSCRIBE_PROGRAM(NAME ssao_debugOcclusion VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord)
-
-AUTOSCRIBE_PROGRAM(NAME stencil_drawMask VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-
-AUTOSCRIBE_PROGRAM(NAME standardDrawTexture VERTEX standardTransformPNTC)
-AUTOSCRIBE_PROGRAM(NAME standardDrawTextureNoBlend VERTEX standardTransformPNTC)
-
-AUTOSCRIBE_PROGRAM(NAME subsurfaceScattering_makeProfile VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-AUTOSCRIBE_PROGRAM(NAME subsurfaceScattering_makeLUT VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-AUTOSCRIBE_PROGRAM(NAME subsurfaceScattering_makeSpecularBeckmann VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-AUTOSCRIBE_PROGRAM(NAME subsurfaceScattering_drawScattering VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-
-AUTOSCRIBE_PROGRAM(NAME surfaceGeometry_makeLinearDepth VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord)
-AUTOSCRIBE_PROGRAM(NAME surfaceGeometry_downsampleDepthNormal VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord)
-AUTOSCRIBE_PROGRAM(NAME surfaceGeometry_makeCurvature VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord)
-
-
-AUTOSCRIBE_PROGRAM(NAME taa VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-AUTOSCRIBE_PROGRAM(NAME taa_blend VERTEX gpu::vertex::DrawUnitQuadTexcoord)
-
-AUTOSCRIBE_PROGRAM(NAME simple FRAGMENT forward_simple_textured)
-AUTOSCRIBE_PROGRAM(NAME simpleUnlit VERTEX simple FRAGMENT forward_simple_textured_unlit)
-AUTOSCRIBE_PROGRAM(NAME simpleTranslucent VERTEX simple FRAGMENT forward_simple_textured_transparent)
-AUTOSCRIBE_PROGRAM(NAME simpleTranslucentUnlit VERTEX simple FRAGMENT simple_transparent_textured_unlit)
-
-AUTOSCRIBE_PROGRAM(NAME forward_model VERTEX model)
-AUTOSCRIBE_PROGRAM(NAME forward_model_translucent VERTEX model)
-AUTOSCRIBE_PROGRAM(NAME forward_model_unlit VERTEX model)
-AUTOSCRIBE_PROGRAM(NAME forward_model_normal_map VERTEX model_normal_map)
-AUTOSCRIBE_PROGRAM(NAME forward_model_normal_map_translucent VERTEX model_normal_map FRAGMENT forward_model_translucent)
-
-AUTOSCRIBE_PROGRAM(NAME forward_skin_model VERTEX skin_model FRAGMENT forward_model)
-AUTOSCRIBE_PROGRAM(NAME forward_skin_model_normal_map VERTEX skin_model_normal_map FRAGMENT forward_model_normal_map)
-AUTOSCRIBE_PROGRAM(NAME forward_skin_model_dq VERTEX skin_model_dq FRAGMENT forward_model)
-AUTOSCRIBE_PROGRAM(NAME forward_skin_model_normal_map_dq VERTEX skin_model_normal_map_dq FRAGMENT forward_model_normal_map)
-
-AUTOSCRIBE_PROGRAM(NAME forward_skin_translucent VERTEX skin_model FRAGMENT forward_model_translucent)
-AUTOSCRIBE_PROGRAM(NAME forward_skin_translucent_normal_map VERTEX skin_model_normal_map FRAGMENT forward_model_translucent)
-AUTOSCRIBE_PROGRAM(NAME forward_skin_translucent_dq VERTEX skin_model_dq FRAGMENT forward_model_translucent)
-AUTOSCRIBE_PROGRAM(NAME forward_skin_translucent_normal_map_dq VERTEX skin_model_normal_map_dq FRAGMENT forward_model_translucent)
-
-AUTOSCRIBE_PROGRAM(NAME model)
-AUTOSCRIBE_PROGRAM(NAME model_unlit VERTEX model)
-AUTOSCRIBE_PROGRAM(NAME model_normal_map)
-AUTOSCRIBE_PROGRAM(NAME model_translucent)
-AUTOSCRIBE_PROGRAM(NAME model_translucent_normal_map)
-AUTOSCRIBE_PROGRAM(NAME model_translucent_unlit VERTEX model)
-AUTOSCRIBE_PROGRAM(NAME model_lightmap)
-AUTOSCRIBE_PROGRAM(NAME model_lightmap_normal_map)
-AUTOSCRIBE_PROGRAM(NAME model_shadow)
-AUTOSCRIBE_PROGRAM(NAME model_shadow_fade)
-
-AUTOSCRIBE_PROGRAM(NAME skin_model FRAGMENT model)
-AUTOSCRIBE_PROGRAM(NAME skin_model_normal_map FRAGMENT model_normal_map)
-AUTOSCRIBE_PROGRAM(NAME skin_model_normal_map_fade FRAGMENT model_normal_map_fade)
-AUTOSCRIBE_PROGRAM(NAME skin_model_translucent VERTEX skin_model_fade FRAGMENT model_translucent)
-AUTOSCRIBE_PROGRAM(NAME skin_model_translucent_fade VERTEX skin_model_fade FRAGMENT model_translucent_fade)
-AUTOSCRIBE_PROGRAM(NAME skin_model_normal_map_translucent VERTEX skin_model_normal_map_fade FRAGMENT model_translucent_normal_map)
-AUTOSCRIBE_PROGRAM(NAME skin_model_normal_map_translucent_fade VERTEX skin_model_normal_map_fade FRAGMENT model_translucent_normal_map_fade)
-AUTOSCRIBE_PROGRAM(NAME skin_model_fade FRAGMENT model_fade)
-AUTOSCRIBE_PROGRAM(NAME skin_model_shadow FRAGMENT model_shadow)
-AUTOSCRIBE_PROGRAM(NAME skin_model_shadow_fade FRAGMENT model_shadow)
-
-
-AUTOSCRIBE_PROGRAM(NAME skin_model_dq FRAGMENT model)
-AUTOSCRIBE_PROGRAM(NAME skin_model_fade_dq FRAGMENT model_fade)
-AUTOSCRIBE_PROGRAM(NAME skin_model_normal_map_dq FRAGMENT model_normal_map)
-AUTOSCRIBE_PROGRAM(NAME skin_model_normal_map_fade_dq FRAGMENT model_normal_map_fade)
-AUTOSCRIBE_PROGRAM(NAME skin_model_translucent_dq VERTEX skin_model_fade_dq FRAGMENT model_translucent)
-AUTOSCRIBE_PROGRAM(NAME skin_model_translucent_fade_dq VERTEX skin_model_fade_dq FRAGMENT model_translucent_fade)
-AUTOSCRIBE_PROGRAM(NAME skin_model_normal_map_translucent_dq VERTEX skin_model_normal_map_fade_dq FRAGMENT model_translucent_normal_map)
-AUTOSCRIBE_PROGRAM(NAME skin_model_normal_map_translucent_fade_dq VERTEX skin_model_normal_map_fade_dq FRAGMENT model_translucent_normal_map_fade)
-
-AUTOSCRIBE_PROGRAM(NAME skin_model_shadow_dq FRAGMENT model_shadow)
-AUTOSCRIBE_PROGRAM(NAME skin_model_shadow_fade_dq FRAGMENT model_shadow_fade)
-
-AUTOSCRIBE_PROGRAM(NAME model_fade)
-AUTOSCRIBE_PROGRAM(NAME model_unlit_fade VERTEX model_fade)
-AUTOSCRIBE_PROGRAM(NAME model_translucent_unlit_fade VERTEX model_fade)
-AUTOSCRIBE_PROGRAM(NAME model_normal_map_fade)
-AUTOSCRIBE_PROGRAM(NAME model_translucent_normal_map_fade VERTEX model_translucent_normal_map)
-AUTOSCRIBE_PROGRAM(NAME model_translucent_fade VERTEX model_fade)
-AUTOSCRIBE_PROGRAM(NAME model_lightmap_fade)
-AUTOSCRIBE_PROGRAM(NAME model_lightmap_normal_map_fade)
-
-AUTOSCRIBE_PROGRAM(NAME zone_drawKeyLight VERTEX gpu::vertex::DrawTransformUnitQuad)
-AUTOSCRIBE_PROGRAM(NAME zone_drawSkybox VERTEX gpu::vertex::DrawTransformUnitQuad)
-AUTOSCRIBE_PROGRAM(NAME zone_drawAmbient VERTEX gpu::vertex::DrawTransformUnitQuad)
-
-AUTOSCRIBE_PROGRAM(NAME toneMapping VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord)
-AUTOSCRIBE_PROGRAM(NAME velocityBuffer_cameraMotion VERTEX gpu::vertex::DrawViewportQuadTransformTexcoord)
-
-set(TARGET_NAME entities-renderer)
-AUTOSCRIBE_SHADER_LIB(gpu graphics procedural render render-utils)
-AUTOSCRIBE_PROGRAM(NAME polyvox)
-AUTOSCRIBE_PROGRAM(NAME polyvox_fade)
-AUTOSCRIBE_PROGRAM(NAME paintStroke)
-AUTOSCRIBE_PROGRAM(NAME textured_particle)
-
set(TARGET_NAME shaders)
-autoscribe_shader_finish()
+autoscribe_shader_libs(gpu graphics display-plugins procedural render render-utils entities-renderer)
setup_hifi_library(Gui)
+
add_dependencies(${TARGET_NAME} compiled_shaders reflected_shaders)
# Despite the dependency above, the autogen logic will attempt to compile the QRC before
diff --git a/tests-manual/gpu-textures/CMakeLists.txt b/tests-manual/gpu-textures/CMakeLists.txt
index c10f2eda3f..84f5027411 100644
--- a/tests-manual/gpu-textures/CMakeLists.txt
+++ b/tests-manual/gpu-textures/CMakeLists.txt
@@ -1,5 +1,4 @@
set(TARGET_NAME gpu-textures-tests)
-AUTOSCRIBE_SHADER_LIB(gpu graphics render-utils)
# This is not a testcase -- just set it up as a regular hifi project
setup_hifi_project(Quick Gui Script)
setup_memory_debugger()
diff --git a/tests-manual/gpu/CMakeLists.txt b/tests-manual/gpu/CMakeLists.txt
index 336dcf753c..30218f3f97 100644
--- a/tests-manual/gpu/CMakeLists.txt
+++ b/tests-manual/gpu/CMakeLists.txt
@@ -1,5 +1,4 @@
set(TARGET_NAME gpu-test)
-AUTOSCRIBE_SHADER_LIB(gpu graphics render-utils)
# This is not a testcase -- just set it up as a regular hifi project
setup_hifi_project(Quick Gui Script)
setup_memory_debugger()
diff --git a/tests/shaders/src/ShaderTests.cpp b/tests/shaders/src/ShaderTests.cpp
index 4c6b8fc38c..4dd15710f9 100644
--- a/tests/shaders/src/ShaderTests.cpp
+++ b/tests/shaders/src/ShaderTests.cpp
@@ -29,20 +29,32 @@
#include
#include
#include
+#include
QTEST_MAIN(ShaderTests)
#pragma optimize("", off)
void ShaderTests::initTestCase() {
_window = new QWindow();
+ _window->setSurfaceType(QSurface::SurfaceType::OpenGLSurface);
_context = new ::gl::Context(_window);
getDefaultOpenGLSurfaceFormat();
_context->create();
if (!_context->makeCurrent()) {
qFatal("Unable to make test GL context current");
}
+ QOpenGLContextWrapper(_context->qglContext()).makeCurrent(_window);
+ if (!_context->makeCurrent()) {
+ qFatal("Unable to make test GL context current");
+ }
gl::initModuleGl();
+ if (!_context->makeCurrent()) {
+ qFatal("Unable to make test GL context current");
+ }
gpu::Context::init();
+ if (!_context->makeCurrent()) {
+ qFatal("Unable to make test GL context current");
+ }
_gpuContext = std::make_shared();
}
@@ -185,7 +197,7 @@ void ShaderTests::testShaderLoad() {
uint32_t maxShader = 0;
try {
-#if 1
+#if 0
uint32_t testPrograms[] = {
shader::render_utils::program::parabola,
shader::INVALID_PROGRAM,
@@ -229,12 +241,6 @@ void ShaderTests::testShaderLoad() {
// Uniforms
{
auto uniforms = gl::Uniform::load(program);
- for (const auto& uniform : uniforms) {
- GLint offset, size;
- glGetActiveUniformsiv(program, 1, (GLuint*)&uniform.index, GL_UNIFORM_OFFSET, &offset);
- glGetActiveUniformsiv(program, 1, (GLuint*)&uniform.index, GL_UNIFORM_SIZE, &size);
- qDebug() << uniform.name.c_str() << " size " << size << "offset" << offset;
- }
const auto& uniformRemap = shaderObject.uniformRemap;
auto expectedUniforms = expectedBindings[gpu::Shader::BindingType::UNIFORM];
if (!compareBindings(uniforms, expectedUniforms)) {