@@ -1024,10 +1024,6 @@ namespace spartan
10241024 }
10251025
10261026 const bool is_tessellated = material->GetProperty (MaterialProperty::Tessellation) > 0 .0f ;
1027- if (render->HasFlag (RenderFlags::SkipDeferred) || material->GetProperty (MaterialProperty::IsSkidMark) != 0 .0f )
1028- {
1029- continue ;
1030- }
10311027 if (is_transparent_pass)
10321028 {
10331029 if (!material->IsTransparent ())
@@ -1081,99 +1077,6 @@ namespace spartan
10811077 RHI_CommandList::EndTimeblock ();
10821078 }
10831079
1084- bool Renderer::Pass_SkidMarks (uint32_t eye_layer)
1085- {
1086- (void )eye_layer;
1087-
1088- RHI_Shader* shader_v = GetShader (Renderer_Shader::skid_marks_v);
1089- RHI_Shader* shader_p = GetShader (Renderer_Shader::skid_marks_p);
1090- if (!shader_v || !shader_p || !shader_v->IsCompiled () || !shader_p->IsCompiled ())
1091- {
1092- return false ;
1093- }
1094-
1095- RHI_Texture* tex_out = GetRenderTarget (Renderer_RenderTarget::frame_render);
1096- RHI_Texture* tex_lit = GetRenderTarget (Renderer_RenderTarget::frame_render_opaque);
1097- RHI_Texture* tex_depth = GetRenderTarget (Renderer_RenderTarget::gbuffer_depth);
1098- if (!tex_out || !tex_lit || !tex_depth)
1099- {
1100- return false ;
1101- }
1102-
1103- bool has_skid = false ;
1104- for (uint32_t i = 0 ; i < m_draw_call_count; i++)
1105- {
1106- Render* render = m_draw_calls[i].render ;
1107- if (render && render->HasFlag (RenderFlags::SkipDeferred) && m_draw_calls[i].camera_visible )
1108- {
1109- has_skid = true ;
1110- break ;
1111- }
1112- }
1113- if (!has_skid)
1114- {
1115- return false ;
1116- }
1117-
1118- RHI_CommandList::Blit (tex_out, tex_lit, false );
1119-
1120- RHI_PipelineState pso;
1121- pso.name = " skid_marks" ;
1122- pso.shaders [RHI_Shader_Type::Vertex] = shader_v;
1123- pso.shaders [RHI_Shader_Type::Pixel] = shader_p;
1124- pso.blend_state = GetBlendState (Renderer_BlendState::Off);
1125- pso.rasterizer_state = GetRasterizerState (Renderer_RasterizerState::Solid);
1126- pso.primitive_topology = RHI_PrimitiveTopology::TriangleList;
1127- pso.depth_stencil_state = GetDepthStencilState (Renderer_DepthStencilState::ReadGreaterEqual);
1128- pso.resolution_scale = true ;
1129- pso.render_target_color_textures [0 ] = tex_out;
1130- pso.render_target_depth_texture = tex_depth;
1131- pso.clear_color [0 ] = rhi_color_load;
1132- pso.cull_mode = RHI_CullMode::None;
1133-
1134- RHI_CommandList::BeginTimeblock (" skid_marks" );
1135- RHI_CommandList::SetPipelineState (pso);
1136- RHI_CommandList::SetCullMode (RHI_CullMode::None);
1137- RHI_CommandList::SetTexture (static_cast <uint32_t >(Renderer_BindingsSrv::tex), tex_lit);
1138-
1139- RHI_Buffer* instance_buffer = GeometryBuffer::GetInstanceBuffer ()
1140- ? GeometryBuffer::GetInstanceBuffer ()
1141- : GetBuffer (Renderer_Buffer::DummyInstance);
1142-
1143- for (uint32_t i = 0 ; i < m_draw_call_count; i++)
1144- {
1145- const Renderer_DrawCall& draw_call = m_draw_calls[i];
1146- Render* render = draw_call.render ;
1147- if (!render || !draw_call.camera_visible || !render->HasFlag (RenderFlags::SkipDeferred))
1148- {
1149- continue ;
1150- }
1151-
1152- Material* material = render->GetMaterial ();
1153- if (!material)
1154- {
1155- continue ;
1156- }
1157-
1158- m_pcb_pass_cpu.draw_index = draw_call.draw_data_index ;
1159- m_pcb_pass_cpu.material_index = material->GetIndex ();
1160- RHI_CommandList::PushConstants (m_pcb_pass_cpu);
1161-
1162- RHI_CommandList::SetBufferVertex (render->GetVertexBuffer (), instance_buffer);
1163- RHI_CommandList::SetBufferIndex (render->GetIndexBuffer ());
1164- RHI_CommandList::DrawIndexed (
1165- render->GetIndexCount (draw_call.lod_index ),
1166- render->GetIndexOffset (draw_call.lod_index ),
1167- render->GetVertexOffset (draw_call.lod_index ),
1168- render->GetGlobalInstanceOffset () + draw_call.instance_index ,
1169- draw_call.instance_count
1170- );
1171- }
1172-
1173- RHI_CommandList::EndTimeblock ();
1174- return true ;
1175- }
1176-
11771080 void Renderer::Pass_GBuffer (const bool is_transparent_pass)
11781081 {
11791082 RHI_CommandList::BeginTimeblock (is_transparent_pass ? " g_buffer_transparent" : " g_buffer" );
0 commit comments