mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-14 23:17:27 +01:00
internal/graphicscommand: add BenchPrependPreservedUniforms
Updates #3144
This commit is contained in:
parent
d334db8291
commit
9f5f53c041
34
internal/graphicscommand/bench_test.go
Normal file
34
internal/graphicscommand/bench_test.go
Normal file
@ -0,0 +1,34 @@
|
||||
// Copyright 2024 The Ebitengine Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package graphicscommand_test
|
||||
|
||||
import (
|
||||
"image"
|
||||
"testing"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2/internal/graphics"
|
||||
"github.com/hajimehoshi/ebiten/v2/internal/graphicscommand"
|
||||
)
|
||||
|
||||
func BenchmarkPrependPreservedUniforms(b *testing.B) {
|
||||
var uniforms [graphics.PreservedUniformUint32Count]uint32
|
||||
dst := graphicscommand.NewImage(16, 16, false, "")
|
||||
src := graphicscommand.NewImage(16, 16, false, "")
|
||||
dr := image.Rect(0, 0, 16, 16)
|
||||
sr := image.Rect(0, 0, 16, 16)
|
||||
for i := 0; i < b.N; i++ {
|
||||
graphicscommand.PrependPreservedUniforms(uniforms[:], nearestFilterShader, dst, [graphics.ShaderSrcImageCount]*graphicscommand.Image{src}, dr, [graphics.ShaderSrcImageCount]image.Rectangle{sr})
|
||||
}
|
||||
}
|
@ -349,7 +349,10 @@ func (q *commandQueue) prependPreservedUniforms(uniforms []uint32, shader *Shade
|
||||
origUniforms := uniforms
|
||||
uniforms = q.uint32sBuffer.alloc(len(origUniforms) + graphics.PreservedUniformUint32Count)
|
||||
copy(uniforms[graphics.PreservedUniformUint32Count:], origUniforms)
|
||||
return prependPreservedUniforms(uniforms, shader, dst, srcs, dstRegion, srcRegions)
|
||||
}
|
||||
|
||||
func prependPreservedUniforms(uniforms []uint32, shader *Shader, dst *Image, srcs [graphics.ShaderSrcImageCount]*Image, dstRegion image.Rectangle, srcRegions [graphics.ShaderSrcImageCount]image.Rectangle) []uint32 {
|
||||
// Set the destination texture size.
|
||||
dw, dh := dst.InternalSize()
|
||||
uniforms[0] = math.Float32bits(float32(dw))
|
||||
|
@ -14,8 +14,18 @@
|
||||
|
||||
package graphicscommand
|
||||
|
||||
import (
|
||||
"image"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2/internal/graphics"
|
||||
)
|
||||
|
||||
type WritePixelsCommandArgs = writePixelsCommandArgs
|
||||
|
||||
func (i *Image) BufferedWritePixelsArgsForTesting() []WritePixelsCommandArgs {
|
||||
return i.bufferedWritePixelsArgs
|
||||
}
|
||||
|
||||
func PrependPreservedUniforms(uniforms []uint32, shader *Shader, dst *Image, srcs [graphics.ShaderSrcImageCount]*Image, dstRegion image.Rectangle, srcRegions [graphics.ShaderSrcImageCount]image.Rectangle) []uint32 {
|
||||
return prependPreservedUniforms(uniforms, shader, dst, srcs, dstRegion, srcRegions)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user