diff options
Diffstat (limited to 'src/3d')
| -rw-r--r-- | src/3d/renderer_pipelines.cc | 6 | ||||
| -rw-r--r-- | src/3d/visual_debug.cc | 18 |
2 files changed, 8 insertions, 16 deletions
diff --git a/src/3d/renderer_pipelines.cc b/src/3d/renderer_pipelines.cc index 2950a7f..3abc3bd 100644 --- a/src/3d/renderer_pipelines.cc +++ b/src/3d/renderer_pipelines.cc @@ -102,6 +102,8 @@ WGPURenderPipeline Renderer3D::create_pipeline_impl(bool use_bvh) { depth_stencil.format = WGPUTextureFormat_Depth24Plus; depth_stencil.depthWriteEnabled = WGPUOptionalBool_True; depth_stencil.depthCompare = WGPUCompareFunction_Less; + depth_stencil.stencilFront.compare = WGPUCompareFunction_Always; + depth_stencil.stencilBack.compare = WGPUCompareFunction_Always; WGPUColorTargetState color_target = {}; color_target.format = format_; @@ -214,6 +216,8 @@ void Renderer3D::create_mesh_pipeline() { depth_stencil.format = WGPUTextureFormat_Depth24Plus; depth_stencil.depthWriteEnabled = WGPUOptionalBool_True; depth_stencil.depthCompare = WGPUCompareFunction_Less; + depth_stencil.stencilFront.compare = WGPUCompareFunction_Always; + depth_stencil.stencilBack.compare = WGPUCompareFunction_Always; WGPUColorTargetState color_target = {}; color_target.format = format_; @@ -305,6 +309,8 @@ void Renderer3D::create_skybox_pipeline() { depth_stencil.format = WGPUTextureFormat_Depth24Plus; depth_stencil.depthWriteEnabled = WGPUOptionalBool_False; depth_stencil.depthCompare = WGPUCompareFunction_Always; + depth_stencil.stencilFront.compare = WGPUCompareFunction_Always; + depth_stencil.stencilBack.compare = WGPUCompareFunction_Always; WGPUColorTargetState color_target = {}; color_target.format = format_; diff --git a/src/3d/visual_debug.cc b/src/3d/visual_debug.cc index f6796d5..036d6ce 100644 --- a/src/3d/visual_debug.cc +++ b/src/3d/visual_debug.cc @@ -68,19 +68,11 @@ void VisualDebug::create_pipeline(WGPUTextureFormat format) { const char* shader_code = (const char*)GetAsset(AssetId::ASSET_SHADER_VISUAL_DEBUG, &shader_len); -#if defined(DEMO_CROSS_COMPILE_WIN32) - WGPUShaderModuleWGSLDescriptor wgsl_desc = {}; - wgsl_desc.chain.sType = WGPUSType_ShaderModuleWGSLDescriptor; - wgsl_desc.code = shader_code; - WGPUShaderModuleDescriptor shader_desc = {}; - shader_desc.nextInChain = (const WGPUChainedStruct*)&wgsl_desc.chain; -#else WGPUShaderSourceWGSL wgsl_desc = {}; wgsl_desc.chain.sType = WGPUSType_ShaderSourceWGSL; wgsl_desc.code = {shader_code, shader_len}; WGPUShaderModuleDescriptor shader_desc = {}; shader_desc.nextInChain = (const WGPUChainedStruct*)&wgsl_desc.chain; -#endif WGPUShaderModule shader_module = wgpuDeviceCreateShaderModule(device_, &shader_desc); @@ -105,21 +97,13 @@ void VisualDebug::create_pipeline(WGPUTextureFormat format) { WGPURenderPipelineDescriptor pipeline_desc = {}; pipeline_desc.layout = pipeline_layout; pipeline_desc.vertex.module = shader_module; -#if defined(DEMO_CROSS_COMPILE_WIN32) - pipeline_desc.vertex.entryPoint = "vs_main"; -#else pipeline_desc.vertex.entryPoint = str_view("vs_main"); -#endif pipeline_desc.vertex.bufferCount = 1; pipeline_desc.vertex.buffers = &vertex_layout; WGPUFragmentState fragment_state = {}; fragment_state.module = shader_module; -#if defined(DEMO_CROSS_COMPILE_WIN32) - fragment_state.entryPoint = "fs_main"; -#else fragment_state.entryPoint = str_view("fs_main"); -#endif fragment_state.targetCount = 1; WGPUColorTargetState color_target = {}; @@ -138,6 +122,8 @@ void VisualDebug::create_pipeline(WGPUTextureFormat format) { depth_stencil.depthWriteEnabled = WGPUOptionalBool_False; // Don't write depth depth_stencil.depthCompare = WGPUCompareFunction_Less; // But do test against it + depth_stencil.stencilFront.compare = WGPUCompareFunction_Always; + depth_stencil.stencilBack.compare = WGPUCompareFunction_Always; pipeline_desc.depthStencil = &depth_stencil; pipeline_desc.multisample.count = 1; |
