Maniphest T54931

Workbench: Performance Shadows
Closed, ResolvedTO DO

Assigned To
Clément Foucault (fclem)
Authored By
Jeroen Bakker (jbakker)
May 3 2018, 10:14 AM
Tags
  • Code Quest
Subscribers
Jeroen Bakker (jbakker)

Description

Optimize the performance of the sharp shadows implementation

  • use transform feedback for caching; store shadows in worldspace

Related Objects

StatusSubtypeAssignedTask
ResolvedTO DOJeroen Bakker (jbakker)
ResolvedTO DOClément Foucault (fclem)

Event Timeline

Jeroen Bakker (jbakker) lowered the priority of this task from 90 to Normal.May 3 2018, 10:14 AM
Jeroen Bakker (jbakker) created this task.
Jeroen Bakker (jbakker) added a parent task: T54907: Workbench (parent task).May 4 2018, 4:49 PM
David Kozma (kynu) added a subscriber: David Kozma (kynu).May 8 2018, 10:28 AM
This comment was removed by David Kozma (kynu).
David Kozma (kynu) removed a subscriber: David Kozma (kynu).May 9 2018, 7:12 AM
Jeroen Bakker (jbakker) triaged this task as 90 priority.May 14 2018, 8:11 AM
Jeroen Bakker (jbakker) moved this task from Tasks to Short Term Backlog on the Code Quest board.
Jeroen Bakker (jbakker) reassigned this task from Jeroen Bakker (jbakker) to Clément Foucault (fclem).May 17 2018, 2:45 PM
Clément Foucault (fclem) moved this task from Short Term Backlog to Reviewing on the Code Quest board.EditedJun 4 2018, 1:37 PM

Ok so just to be up to date:

  • The major bottleneck on most system is the overdraw.
  • Geometry shader is a bottleneck but not that much. So not caching anything for now.
  • We reduced the overdraw by extruding only relevant geometry.
  • We made the algorithm more robust by adding depth fail method.
  • The only remaining problem is visible if you have shadow casting non-manifold geometry and the camera is in shadow.

There maybe a solution to the last problem but I need to implement it first.

Clément Foucault (fclem) added a comment.Jun 7 2018, 12:18 PM

Ok so the last problem has been adressed.
So hopefully we have working shadows in all cases and it's not as heavy as it was.
If there is remaining problem it's a bug in the implementation and need to be reported.

Here is a list of some (all?) my commits on this subject.
rBaefc793a818aa8fa35e968b2be38e1b73909907d
rB60ddea7758128283f3ed3a15a2f8448691a811a8
rB975eac0b0794e6455a3fb642d4e1e0782cdd292e
rB0c9974c8cd96c1c089cb3f00fb782df7b8294d6c
rBe47e60a9b9692ed0e0fc0397e2841f9d547847c4
rB101c277e3d8241ad55f6343690b5d96a5e37d1f0

Dalai Felinto (dfelinto) moved this task from Reviewing to Done on the Code Quest board.Jun 11 2018, 12:05 PM
Dalai Felinto (dfelinto) changed the task status from Unknown Status to Resolved.Jun 11 2018, 12:15 PM