![]() |
OGRE 2.3.1
Object-Oriented Graphics Rendering Engine
|
Enumerations | |
enum | CopyEncTransitionMode { Auto , AlreadyInLayoutThenAuto , AlreadyInLayoutThenManual } |
Copy Encoder Transition modes to be used by TextureGpu::copyTo and TextureGpu::_autogenerateMipmaps. More... | |
Copy Encoder Transition modes to be used by TextureGpu::copyTo and TextureGpu::_autogenerateMipmaps.
Enumerator | |
---|---|
Auto | The texture layout transitions are left to the copy encoder. Texture must NOT be in CopySrc or CopyDst. Texture will be marked as being in ResourceLayout::CopyEncoderManaged in the BarrierSolver Once the copy encoder is closed (e.g. implicitly or calling RenderSystem::endCopyEncoder) all auto managed textures will be transitioned to a default layout and BarrierSolver will be informed |
AlreadyInLayoutThenAuto | Texture is already transitioned directly via BarrierSolver to the expected CopySrc/CopyDst/MipmapGen. Main reason to do this because you were able to group many texture transitions together. Afterwards management is handed off to the Copy encoder: texture is tagged in BarrierSolver as CopyEncoderManaged and behaves like CopyEncTransitionMode::Auto. e.g. ResourceAccess::Read, 0u );
renderSystem->executeResourceTransition( resourceTransitions );
Property instance with passthrough calls to a given object. Definition OgreProperty.h:216 @ AlreadyInLayoutThenAuto Texture is already transitioned directly via BarrierSolver to the expected CopySrc/CopyDst/MipmapGen. Definition OgreTextureGpu.h:223 @ Auto The texture layout transitions are left to the copy encoder. Definition OgreTextureGpu.h:201 |
AlreadyInLayoutThenManual | Texture is already transitioned directly via BarrierSolver to the expected CopySrc/CopyDst/MipmapGen. After the copyTo/_autogenerateMipmaps calls, caller is responsible for using BarrierSolver again. Note that this can be very dangerous and not recommended! The following code is for example a race condition: ResourceAccess::Read, 0u );
renderSystem->executeResourceTransition( rt );
The reason is that there should be a barrier between the 1st and 2nd copy; otherwise C copy into A may start before the copy from B into A finishes; thus A may not fully end up with C's contents. But if you're wary of placing the barriers correctly, you have full control and group as many layout transitions as possible |