Loading...
Searching...
No Matches
blitCmds.h
1//
2// Copyright 2019 Pixar
3//
4// Licensed under the terms set forth in the LICENSE.txt file available at
5// https://openusd.org/license.
6//
7#ifndef PXR_IMAGING_HGI_BLIT_CMDS_H
8#define PXR_IMAGING_HGI_BLIT_CMDS_H
9
10#include "pxr/pxr.h"
11#include "pxr/imaging/hgi/api.h"
12#include "pxr/imaging/hgi/buffer.h"
13#include "pxr/imaging/hgi/cmds.h"
14#include "pxr/imaging/hgi/texture.h"
15#include <memory>
16
17PXR_NAMESPACE_OPEN_SCOPE
18
26struct HgiResolveImageOp;
27
28using HgiBlitCmdsUniquePtr = std::unique_ptr<class HgiBlitCmds>;
29
30
37class HgiBlitCmds : public HgiCmds
38{
39public:
40 HGI_API
41 ~HgiBlitCmds() override;
42
44 HGI_API
45 virtual void PushDebugGroup(const char* label) = 0;
46
48 HGI_API
49 virtual void PopDebugGroup() = 0;
50
54 HGI_API
55 virtual void CopyTextureGpuToCpu(HgiTextureGpuToCpuOp const& copyOp) = 0;
56
58 HGI_API
59 virtual void CopyTextureCpuToGpu(HgiTextureCpuToGpuOp const& copyOp) = 0;
60
62 HGI_API
63 virtual void CopyBufferGpuToGpu(HgiBufferGpuToGpuOp const& copyOp) = 0;
64
67 HGI_API
68 virtual void CopyBufferCpuToGpu(HgiBufferCpuToGpuOp const& copyOp) = 0;
69
73 HGI_API
74 virtual void CopyBufferGpuToCpu(HgiBufferGpuToCpuOp const& copyOp) = 0;
75
77 HGI_API
78 virtual void CopyTextureToBuffer(HgiTextureToBufferOp const& copyOp) = 0;
79
81 HGI_API
82 virtual void CopyBufferToTexture(HgiBufferToTextureOp const& copyOp) = 0;
83
85 HGI_API
86 virtual void GenerateMipMaps(HgiTextureHandle const& texture) = 0;
87
89 HGI_API
90 virtual void FillBuffer(HgiBufferHandle const& buffer, uint8_t value) = 0;
91
94 HGI_API
95 virtual void InsertMemoryBarrier(HgiMemoryBarrier barrier) = 0;
96
97protected:
98 HGI_API
100
101private:
102 HgiBlitCmds & operator=(const HgiBlitCmds&) = delete;
103 HgiBlitCmds(const HgiBlitCmds&) = delete;
104};
105
106
107
108PXR_NAMESPACE_CLOSE_SCOPE
109
110#endif
A graphics API independent abstraction of resource copy commands.
Definition: blitCmds.h:38
virtual HGI_API void CopyBufferGpuToGpu(HgiBufferGpuToGpuOp const &copyOp)=0
Copy a buffer resource from GPU to GPU.
virtual HGI_API void CopyBufferCpuToGpu(HgiBufferCpuToGpuOp const &copyOp)=0
Copy new data from CPU into GPU buffer.
virtual HGI_API void PushDebugGroup(const char *label)=0
Push a debug marker.
virtual HGI_API void CopyBufferToTexture(HgiBufferToTextureOp const &copyOp)=0
Copy a buffer resource into a texture resource from GPU to GPU.
virtual HGI_API void PopDebugGroup()=0
Pop the lastest debug.
virtual HGI_API void GenerateMipMaps(HgiTextureHandle const &texture)=0
Generate mip maps for a texture.
virtual HGI_API void CopyTextureToBuffer(HgiTextureToBufferOp const &copyOp)=0
Copy a texture resource into a buffer resource from GPU to GPU.
virtual HGI_API void CopyTextureCpuToGpu(HgiTextureCpuToGpuOp const &copyOp)=0
Copy new data from the CPU into a GPU texture.
virtual HGI_API void CopyBufferGpuToCpu(HgiBufferGpuToCpuOp const &copyOp)=0
Copy new data from GPU into CPU buffer.
virtual HGI_API void FillBuffer(HgiBufferHandle const &buffer, uint8_t value)=0
Fill a buffer with a constant value.
virtual HGI_API void CopyTextureGpuToCpu(HgiTextureGpuToCpuOp const &copyOp)=0
Copy a texture resource from GPU to CPU.
virtual HGI_API void InsertMemoryBarrier(HgiMemoryBarrier barrier)=0
Inserts a barrier so that data written to memory by commands before the barrier is available to comma...
Graphics commands are recorded in 'cmds' objects which are later submitted to hgi.
Definition: cmds.h:28
Describes the properties needed to copy buffer data from CPU to GPU.
Definition: blitCmdsOps.h:174
Describes the properties needed to copy buffer data from GPU to CPU.
Definition: blitCmdsOps.h:214
Describes the properties needed to copy buffer data from GPU to GPU.
Definition: blitCmdsOps.h:134
Describes the properties needed to copy GPU buffer data into a GPU texture.
Definition: blitCmdsOps.h:298
Describes the properties needed to copy texture data from CPU to GPU.
Definition: blitCmdsOps.h:94
Describes the properties needed to copy texture data from GPU to CPU.
Definition: blitCmdsOps.h:51
Describes the properties needed to copy GPU texture data into a GPU buffer.
Definition: blitCmdsOps.h:254