mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-14 03:11:29 +00:00
Move texture uploads into CommandBufferGL::DoTexSubImage() and use it for both CommandBuffer CopyBufferToTexture and QueueGL::WriteTextureImpl(). On the CB side, For now this is only used for compressed ES textures. Desktop GL has a fast-path for compressed textures that isn't currently implemented. Bug: dawn:684 Change-Id: I4da02e9c96c13fd71d133778168a5597efa7b59a Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47123 Reviewed-by: Austin Eng <enga@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
50 lines
1.7 KiB
C++
50 lines
1.7 KiB
C++
// Copyright 2017 The Dawn 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.
|
|
|
|
#ifndef DAWNNATIVE_OPENGL_COMMANDBUFFERGL_H_
|
|
#define DAWNNATIVE_OPENGL_COMMANDBUFFERGL_H_
|
|
|
|
#include "dawn_native/CommandBuffer.h"
|
|
|
|
namespace dawn_native {
|
|
struct BeginRenderPassCmd;
|
|
} // namespace dawn_native
|
|
|
|
namespace dawn_native { namespace opengl {
|
|
|
|
class Device;
|
|
struct OpenGLFunctions;
|
|
|
|
class CommandBuffer final : public CommandBufferBase {
|
|
public:
|
|
CommandBuffer(CommandEncoder* encoder, const CommandBufferDescriptor* descriptor);
|
|
|
|
MaybeError Execute();
|
|
|
|
private:
|
|
MaybeError ExecuteComputePass();
|
|
MaybeError ExecuteRenderPass(BeginRenderPassCmd* renderPass);
|
|
};
|
|
|
|
// Like glTexSubImage*, the "data" argument is either a pointer to image data or
|
|
// an offset if a PBO is bound.
|
|
void DoTexSubImage(const OpenGLFunctions& gl,
|
|
const TextureCopy& destination,
|
|
const void* data,
|
|
const TextureDataLayout& dataLayout,
|
|
const Extent3D& writeSizePixel);
|
|
}} // namespace dawn_native::opengl
|
|
|
|
#endif // DAWNNATIVE_OPENGL_COMMANDBUFFERGL_H_
|