Open hajimehoshi opened 1 day ago
BCE result:
% go build -gcflags=-d=ssa/check_bce ./internal/graphicscommand
# github.com/hajimehoshi/ebiten/v2/internal/graphicscommand
internal/graphicscommand/command.go:51:17: Found IsSliceInBounds
internal/graphicscommand/command.go:228:16: Found IsInBounds
internal/graphicscommand/command.go:229:16: Found IsInBounds
internal/graphicscommand/image.go:179:28: Found IsInBounds
internal/graphicscommand/image.go:183:28: Found IsInBounds
internal/graphicscommand/image.go:185:62: Found IsSliceInBounds
internal/graphicscommand/image.go:217:7: Found IsInBounds
internal/graphicscommand/image.go:234:16: Found IsInBounds
internal/graphicscommand/image.go:234:31: Found IsInBounds
internal/graphicscommand/commandqueue.go:139:23: Found IsInBounds
internal/graphicscommand/commandqueue.go:180:19: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:264:14: Found IsInBounds
internal/graphicscommand/commandqueue.go:275:17: Found IsInBounds
internal/graphicscommand/commandqueue.go:297:43: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:297:52: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:300:11: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:301:11: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:304:23: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:326:10: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:351:15: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:367:11: Found IsInBounds
internal/graphicscommand/commandqueue.go:368:11: Found IsInBounds
internal/graphicscommand/commandqueue.go:409:11: Found IsInBounds
internal/graphicscommand/commandqueue.go:410:11: Found IsInBounds
internal/graphicscommand/commandqueue.go:416:11: Found IsInBounds
internal/graphicscommand/commandqueue.go:417:11: Found IsInBounds
internal/graphicscommand/commandqueue.go:461:14: Found IsInBounds
internal/graphicscommand/commandqueue.go:463:19: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:536:10: Found IsSliceInBounds
internal/graphicscommand/image_notjs.go:100:14: Found IsSliceInBounds
internal/graphicscommand/command.go:247:53: Found IsInBounds
internal/graphicscommand/command.go:248:53: Found IsInBounds
internal/graphicscommand/commandqueue.go:138:36: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:152:37: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:155:29: Found IsSliceInBounds
internal/graphicscommand/commandqueue.go:350:34: Found IsSliceInBounds
Operating System
What feature would you like to be added?
prependPreservedUniforms
tends to be a hot spot for performance, especially when rendering a lot of sprites. Here is the profiling result ofexamples/sprites
with 10000 sprites:atlas.Image.drawTriangles
is the heaviest process, but this does a little complicated things. Let's focus onprependPreservedUniforms
.There are some ideas to optimize this.
prependPreservedUniforms
moves the data?Why is this needed?
No response