Brandon Jones 9f1579469d Initialize External Texture's Internal Params Buffer
Initializes a uniform buffer on ExternalTexture objects that holds data
used by in shaders. Includes modifications to some Mock tests, which
should be using mock external texture objects instead of real ones.

Bug: dawn:1082
Change-Id: I34c02eadaf38aebf22630ac99098e0637ca1279c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/78240
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Brandon1 Jones <brandon1.jones@intel.com>
2022-01-27 18:05:28 +00:00

122 lines
5.0 KiB
C++

// Copyright 2021 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 TESTS_UNITTESTS_NATIVE_MOCKS_DEVICE_MOCK_H_
#define TESTS_UNITTESTS_NATIVE_MOCKS_DEVICE_MOCK_H_
#include "dawn_native/Device.h"
#include "dawn_native/RenderPipeline.h"
#include <gmock/gmock.h>
namespace dawn::native {
class DeviceMock : public DeviceBase {
public:
// Exposes some protected functions for testing purposes.
using DeviceBase::DestroyObjects;
using DeviceBase::SetToggle;
MOCK_METHOD(ResultOrError<Ref<CommandBufferBase>>,
CreateCommandBuffer,
(CommandEncoder*, const CommandBufferDescriptor*),
(override));
MOCK_METHOD(ResultOrError<std::unique_ptr<StagingBufferBase>>,
CreateStagingBuffer,
(size_t),
(override));
MOCK_METHOD(MaybeError,
CopyFromStagingToBuffer,
(StagingBufferBase*, uint64_t, BufferBase*, uint64_t, uint64_t),
(override));
MOCK_METHOD(
MaybeError,
CopyFromStagingToTexture,
(const StagingBufferBase*, const TextureDataLayout&, TextureCopy*, const Extent3D&),
(override));
MOCK_METHOD(uint32_t, GetOptimalBytesPerRowAlignment, (), (const, override));
MOCK_METHOD(uint64_t, GetOptimalBufferToTextureCopyOffsetAlignment, (), (const, override));
MOCK_METHOD(float, GetTimestampPeriodInNS, (), (const, override));
MOCK_METHOD(ResultOrError<Ref<BindGroupBase>>,
CreateBindGroupImpl,
(const BindGroupDescriptor*),
(override));
MOCK_METHOD(ResultOrError<Ref<BindGroupLayoutBase>>,
CreateBindGroupLayoutImpl,
(const BindGroupLayoutDescriptor*, PipelineCompatibilityToken),
(override));
MOCK_METHOD(ResultOrError<Ref<BufferBase>>,
CreateBufferImpl,
(const BufferDescriptor*),
(override));
MOCK_METHOD(Ref<ComputePipelineBase>,
CreateUninitializedComputePipelineImpl,
(const ComputePipelineDescriptor*),
(override));
MOCK_METHOD(ResultOrError<Ref<ExternalTextureBase>>,
CreateExternalTextureImpl,
(const ExternalTextureDescriptor*),
(override));
MOCK_METHOD(ResultOrError<Ref<PipelineLayoutBase>>,
CreatePipelineLayoutImpl,
(const PipelineLayoutDescriptor*),
(override));
MOCK_METHOD(ResultOrError<Ref<QuerySetBase>>,
CreateQuerySetImpl,
(const QuerySetDescriptor*),
(override));
MOCK_METHOD(Ref<RenderPipelineBase>,
CreateUninitializedRenderPipelineImpl,
(const RenderPipelineDescriptor*),
(override));
MOCK_METHOD(ResultOrError<Ref<SamplerBase>>,
CreateSamplerImpl,
(const SamplerDescriptor*),
(override));
MOCK_METHOD(ResultOrError<Ref<ShaderModuleBase>>,
CreateShaderModuleImpl,
(const ShaderModuleDescriptor*, ShaderModuleParseResult*),
(override));
MOCK_METHOD(ResultOrError<Ref<SwapChainBase>>,
CreateSwapChainImpl,
(const SwapChainDescriptor*),
(override));
MOCK_METHOD(ResultOrError<Ref<NewSwapChainBase>>,
CreateSwapChainImpl,
(Surface*, NewSwapChainBase*, const SwapChainDescriptor*),
(override));
MOCK_METHOD(ResultOrError<Ref<TextureBase>>,
CreateTextureImpl,
(const TextureDescriptor*),
(override));
MOCK_METHOD(ResultOrError<Ref<TextureViewBase>>,
CreateTextureViewImpl,
(TextureBase*, const TextureViewDescriptor*),
(override));
MOCK_METHOD(MaybeError, TickImpl, (), (override));
MOCK_METHOD(ResultOrError<ExecutionSerial>, CheckAndUpdateCompletedSerials, (), (override));
MOCK_METHOD(void, DestroyImpl, (), (override));
MOCK_METHOD(MaybeError, WaitForIdleForDestruction, (), (override));
};
} // namespace dawn::native
#endif // TESTS_UNITTESTS_NATIVE_MOCKS_DEVICE_MOCK_H_