diff --git a/.gitmodules b/.gitmodules index 677ae9a5..e2691ed3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,3 +19,6 @@ [submodule "CMPlatform"] path = CMPlatform url = https://github.com/hyzboy/CMPlatform +[submodule "CMAssetsManage"] + path = CMAssetsManage + url = https://github.com/hyzboy/CMAssetsManage.git diff --git a/CMAssetsManage b/CMAssetsManage new file mode 160000 index 00000000..a03628ac --- /dev/null +++ b/CMAssetsManage @@ -0,0 +1 @@ +Subproject commit a03628acf307e07d383d8ab41c2a9ca73a052fb3 diff --git a/src/RenderDevice/Shader/ShaderMaker.cpp b/src/RenderDevice/Shader/ShaderMaker.cpp index 2b2289c8..a416474d 100644 --- a/src/RenderDevice/Shader/ShaderMaker.cpp +++ b/src/RenderDevice/Shader/ShaderMaker.cpp @@ -23,6 +23,7 @@ BEGIN_SHADER_NAMESPACE namespace { + }//namespace bool ShaderMaker::Check() diff --git a/src/RenderDevice/Vulkan/CMakeLists.txt b/src/RenderDevice/Vulkan/CMakeLists.txt index 83fe548b..bf76ddf9 100644 --- a/src/RenderDevice/Vulkan/CMakeLists.txt +++ b/src/RenderDevice/Vulkan/CMakeLists.txt @@ -56,7 +56,14 @@ SOURCE_GROUP("Header Files" FILES ${RENDER_DEVICE_VULKAN_HEADER}) SOURCE_GROUP("Source Files" FILES ${RENDER_DEVICE_VULKAN_SOURCE}) SOURCE_GROUP("POD Source Files" FILES ${RENDER_DEVICE_VULKAN_POD_SOURCE}) -add_cm_library(ULRE.RenderDevice.Vulkan "ULRE" ${RENDER_DEVICE_VULKAN_HEADER} +OPTION(FORCE_DISCETE_GPU "Force Discrete GPU" OFF) + +IF(FORCE_DISCETE_GPU) + SET(RENDER_DEVICE_SOURCE ForceDiscreteGPU.c) +ENDIF() + +add_cm_library(ULRE.RenderDevice.Vulkan "ULRE" ${RENDER_DEVICE_SOURCE} + ${RENDER_DEVICE_VULKAN_HEADER} ${RENDER_DEVICE_VULKAN_SOURCE} ${RENDER_DEVICE_VULKAN_POD_SOURCE} diff --git a/src/RenderDevice/Vulkan/ForceDiscreteGPU.c b/src/RenderDevice/Vulkan/ForceDiscreteGPU.c new file mode 100644 index 00000000..3b2053b1 --- /dev/null +++ b/src/RenderDevice/Vulkan/ForceDiscreteGPU.c @@ -0,0 +1,10 @@ +#include + +// http://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf +// The following line is to favor the high performance NVIDIA GPU if there are multiple GPUs +// Has to be .exe module to be correctly detected. +extern __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; + +// And the AMD equivalent +// Also has to be .exe module to be correctly detected. +extern __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 0x00000001;