Compare commits
2 commits
cf374cd368
...
7b9bb79284
| Author | SHA1 | Date | |
|---|---|---|---|
| 7b9bb79284 | |||
| 74a56d840c |
2 changed files with 10 additions and 6 deletions
|
|
@ -17,14 +17,16 @@ target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE --use-port=emdawnwebgpu)
|
||||||
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE --use-port=emdawnwebgpu -sASYNCIFY=1)
|
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE --use-port=emdawnwebgpu -sASYNCIFY=1)
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE glm::glm)
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE glm::glm)
|
||||||
target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE -DGLM_FORCE_DEPTH_ZERO_TO_ONE -DGLM_FORCE_LEFT_HANDED)
|
target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE -DGLM_FORCE_DEPTH_ZERO_TO_ONE -DGLM_FORCE_LEFT_HANDED)
|
||||||
|
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||||
|
|
||||||
function(compile_and_package_shader SHADER_NAME TARGET)
|
function(compile_and_package_shader SHADER_NAME TARGET)
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/shaders
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/shaders
|
||||||
COMMAND slangc -target wgsl -matrix-layout-column-major ${CMAKE_CURRENT_SOURCE_DIR}/assets/shaders/${SHADER_NAME}.slang -o ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl
|
COMMAND slangc -target wgsl -matrix-layout-column-major ${CMAKE_CURRENT_SOURCE_DIR}/assets/shaders/${SHADER_NAME}.slang -o ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl -depfile ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl.d
|
||||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/assets/shaders/${SHADER_NAME}.slang)
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/assets/shaders/${SHADER_NAME}.slang
|
||||||
|
DEPFILE ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl.d
|
||||||
|
)
|
||||||
add_custom_target(${TARGET}_shader_${SHADER_NAME} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl)
|
add_custom_target(${TARGET}_shader_${SHADER_NAME} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl)
|
||||||
#TODO: Add deptfile generation via slang for recompilation when embedded files change
|
|
||||||
add_dependencies(${TARGET} ${TARGET}_shader_${SHADER_NAME})
|
add_dependencies(${TARGET} ${TARGET}_shader_${SHADER_NAME})
|
||||||
target_link_options(${TARGET} PRIVATE --embed-file ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl@/shaders/${SHADER_NAME}.wgsl)
|
target_link_options(${TARGET} PRIVATE --embed-file ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl@/shaders/${SHADER_NAME}.wgsl)
|
||||||
set_target_properties(${TARGET} PROPERTIES LINK_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl)
|
set_target_properties(${TARGET} PROPERTIES LINK_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.wgsl)
|
||||||
|
|
|
||||||
|
|
@ -13,15 +13,17 @@ struct STDCamera {
|
||||||
float3 position;
|
float3 position;
|
||||||
float3 direction;
|
float3 direction;
|
||||||
};
|
};
|
||||||
|
[vk::binding(1, 0)]
|
||||||
[vk::binding(0, 0)]
|
StructuredBuffer<STDVertex> vertices;
|
||||||
|
[vk::binding(0, 0)]
|
||||||
uniform ConstantBuffer<STDCamera> camera;
|
uniform ConstantBuffer<STDCamera> camera;
|
||||||
|
|
||||||
[shader("vertex")]
|
[shader("vertex")]
|
||||||
VertexOut vsMain(uint vertex_id: SV_VertexID, uint instance_id: SV_InstanceID, [vk::binding(1, 0)] StructuredBuffer<STDVertex> vertices) {
|
VertexOut vsMain(uint vertex_id: SV_VertexID, uint instance_id: SV_InstanceID){
|
||||||
return VertexOut(mul(camera.mvp, float4(vertices[vertex_id].pos, 1.0)), vertices[vertex_id].col);
|
return VertexOut(mul(camera.mvp, float4(vertices[vertex_id].pos, 1.0)), vertices[vertex_id].col);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[shader("pixel")]
|
[shader("pixel")]
|
||||||
float4 fsMain(VertexOut fsIn){
|
float4 fsMain(VertexOut fsIn){
|
||||||
return fsIn.col;
|
return fsIn.col;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue