mirror of
https://github.com/lubosz/overte.git
synced 2025-04-15 19:47:38 +02:00
Renamed resourcering to resourceswapchain
This commit is contained in:
parent
f53c2f41a5
commit
093a1491cd
10 changed files with 49 additions and 49 deletions
|
@ -99,10 +99,10 @@ GLBackend::CommandCall GLBackend::_commandCalls[Batch::NUM_COMMANDS] =
|
|||
(&::gpu::gl::GLBackend::do_setUniformBuffer),
|
||||
(&::gpu::gl::GLBackend::do_setResourceBuffer),
|
||||
(&::gpu::gl::GLBackend::do_setResourceTexture),
|
||||
(&::gpu::gl::GLBackend::do_setResourceFramebufferRingTexture),
|
||||
(&::gpu::gl::GLBackend::do_setResourceFramebufferSwapChainTexture),
|
||||
|
||||
(&::gpu::gl::GLBackend::do_setFramebuffer),
|
||||
(&::gpu::gl::GLBackend::do_setFramebufferRing),
|
||||
(&::gpu::gl::GLBackend::do_setFramebufferSwapChain),
|
||||
(&::gpu::gl::GLBackend::do_clearFramebuffer),
|
||||
(&::gpu::gl::GLBackend::do_blit),
|
||||
(&::gpu::gl::GLBackend::do_generateTextureMips),
|
||||
|
|
|
@ -126,14 +126,14 @@ public:
|
|||
// Resource Stage
|
||||
virtual void do_setResourceBuffer(const Batch& batch, size_t paramOffset) final;
|
||||
virtual void do_setResourceTexture(const Batch& batch, size_t paramOffset) final;
|
||||
virtual void do_setResourceFramebufferRingTexture(const Batch& batch, size_t paramOffset) final;
|
||||
virtual void do_setResourceFramebufferSwapChainTexture(const Batch& batch, size_t paramOffset) final;
|
||||
|
||||
// Pipeline Stage
|
||||
virtual void do_setPipeline(const Batch& batch, size_t paramOffset) final;
|
||||
|
||||
// Output stage
|
||||
virtual void do_setFramebuffer(const Batch& batch, size_t paramOffset) final;
|
||||
virtual void do_setFramebufferRing(const Batch& batch, size_t paramOffset) final;
|
||||
virtual void do_setFramebufferSwapChain(const Batch& batch, size_t paramOffset) final;
|
||||
virtual void do_clearFramebuffer(const Batch& batch, size_t paramOffset) final;
|
||||
virtual void do_blit(const Batch& batch, size_t paramOffset) = 0;
|
||||
|
||||
|
|
|
@ -40,11 +40,11 @@ void GLBackend::do_setFramebuffer(const Batch& batch, size_t paramOffset) {
|
|||
setFramebuffer(framebuffer);
|
||||
}
|
||||
|
||||
void GLBackend::do_setFramebufferRing(const Batch& batch, size_t paramOffset) {
|
||||
auto ringbuffer = batch._ringbuffers.get(batch._params[paramOffset]._uint);
|
||||
if (ringbuffer) {
|
||||
void GLBackend::do_setFramebufferSwapChain(const Batch& batch, size_t paramOffset) {
|
||||
auto swapChain = batch._swapChains.get(batch._params[paramOffset]._uint);
|
||||
if (swapChain) {
|
||||
auto index = batch._params[paramOffset + 1]._uint;
|
||||
FramebufferPointer framebuffer = static_cast<const FramebufferRing*>(ringbuffer.get())->get(index);
|
||||
FramebufferPointer framebuffer = static_cast<const FramebufferSwapChain*>(swapChain.get())->get(index);
|
||||
setFramebuffer(framebuffer);
|
||||
}
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ void GLBackend::setFramebuffer(const FramebufferPointer& framebuffer) {
|
|||
}
|
||||
|
||||
void GLBackend::do_advance(const Batch& batch, size_t paramOffset) {
|
||||
auto ringbuffer = batch._ringbuffers.get(batch._params[paramOffset]._uint);
|
||||
auto ringbuffer = batch._swapChains.get(batch._params[paramOffset]._uint);
|
||||
if (ringbuffer) {
|
||||
ringbuffer->advance();
|
||||
}
|
||||
|
|
|
@ -256,22 +256,22 @@ void GLBackend::do_setResourceTexture(const Batch& batch, size_t paramOffset) {
|
|||
setResourceTexture(slot, resourceTexture);
|
||||
}
|
||||
|
||||
void GLBackend::do_setResourceFramebufferRingTexture(const Batch& batch, size_t paramOffset) {
|
||||
void GLBackend::do_setResourceFramebufferSwapChainTexture(const Batch& batch, size_t paramOffset) {
|
||||
GLuint slot = batch._params[paramOffset + 1]._uint;
|
||||
if (slot >= (GLuint)MAX_NUM_RESOURCE_TEXTURES) {
|
||||
qCDebug(gpugllogging) << "GLBackend::do_setResourceFramebufferRingTexture: Trying to set a resource Texture at slot #" << slot << " which doesn't exist. MaxNumResourceTextures = " << getMaxNumResourceTextures();
|
||||
qCDebug(gpugllogging) << "GLBackend::do_setResourceFramebufferSwapChainTexture: Trying to set a resource Texture at slot #" << slot << " which doesn't exist. MaxNumResourceTextures = " << getMaxNumResourceTextures();
|
||||
return;
|
||||
}
|
||||
|
||||
RingBufferPointer ringBuffer = batch._ringbuffers.get(batch._params[paramOffset + 0]._uint);
|
||||
SwapChainPointer swapChain = batch._swapChains.get(batch._params[paramOffset + 0]._uint);
|
||||
|
||||
if (!ringBuffer) {
|
||||
if (!swapChain) {
|
||||
releaseResourceTexture(slot);
|
||||
return;
|
||||
}
|
||||
auto index = batch._params[paramOffset + 2]._uint;
|
||||
auto renderBufferSlot = batch._params[paramOffset + 3]._uint;
|
||||
FramebufferPointer resourceFramebuffer = static_cast<const FramebufferRing*>(ringBuffer.get())->get(index);
|
||||
FramebufferPointer resourceFramebuffer = static_cast<const FramebufferSwapChain*>(swapChain.get())->get(index);
|
||||
TexturePointer resourceTexture = resourceFramebuffer->getRenderBuffer(renderBufferSlot);
|
||||
|
||||
setResourceTexture(slot, resourceTexture);
|
||||
|
|
|
@ -73,7 +73,7 @@ Batch::Batch(const Batch& batch_) {
|
|||
_transforms._items.swap(batch._transforms._items);
|
||||
_pipelines._items.swap(batch._pipelines._items);
|
||||
_framebuffers._items.swap(batch._framebuffers._items);
|
||||
_ringbuffers._items.swap(batch._ringbuffers._items);
|
||||
_swapChains._items.swap(batch._swapChains._items);
|
||||
_drawCallInfos.swap(batch._drawCallInfos);
|
||||
_queries._items.swap(batch._queries._items);
|
||||
_lambdas._items.swap(batch._lambdas._items);
|
||||
|
@ -111,7 +111,7 @@ void Batch::clear() {
|
|||
_transforms.clear();
|
||||
_pipelines.clear();
|
||||
_framebuffers.clear();
|
||||
_ringbuffers.clear();
|
||||
_swapChains.clear();
|
||||
_objects.clear();
|
||||
_drawCallInfos.clear();
|
||||
}
|
||||
|
@ -322,12 +322,12 @@ void Batch::setResourceTexture(uint32 slot, const TextureView& view) {
|
|||
setResourceTexture(slot, view._texture);
|
||||
}
|
||||
|
||||
void Batch::setResourceFramebufferRingTexture(uint32 slot, const FramebufferRingPointer& framebuffer, unsigned int ringIndex, unsigned int renderBufferSlot) {
|
||||
ADD_COMMAND(setResourceFramebufferRingTexture);
|
||||
void Batch::setResourceFramebufferSwapChainTexture(uint32 slot, const FramebufferSwapChainPointer& framebuffer, unsigned int swapChainIndex, unsigned int renderBufferSlot) {
|
||||
ADD_COMMAND(setResourceFramebufferSwapChainTexture);
|
||||
|
||||
_params.emplace_back(_ringbuffers.cache(framebuffer));
|
||||
_params.emplace_back(_swapChains.cache(framebuffer));
|
||||
_params.emplace_back(slot);
|
||||
_params.emplace_back(ringIndex);
|
||||
_params.emplace_back(swapChainIndex);
|
||||
_params.emplace_back(renderBufferSlot);
|
||||
}
|
||||
|
||||
|
@ -338,17 +338,17 @@ void Batch::setFramebuffer(const FramebufferPointer& framebuffer) {
|
|||
|
||||
}
|
||||
|
||||
void Batch::setFramebufferRing(const FramebufferRingPointer& framebuffer, unsigned int ringIndex) {
|
||||
ADD_COMMAND(setFramebufferRing);
|
||||
void Batch::setFramebufferSwapChain(const FramebufferSwapChainPointer& framebuffer, unsigned int swapChainIndex) {
|
||||
ADD_COMMAND(setFramebufferSwapChain);
|
||||
|
||||
_params.emplace_back(_ringbuffers.cache(framebuffer));
|
||||
_params.emplace_back(ringIndex);
|
||||
_params.emplace_back(_swapChains.cache(framebuffer));
|
||||
_params.emplace_back(swapChainIndex);
|
||||
}
|
||||
|
||||
void Batch::advance(const RingBufferPointer& ringbuffer) {
|
||||
void Batch::advance(const SwapChainPointer& swapChain) {
|
||||
ADD_COMMAND(advance);
|
||||
|
||||
_params.emplace_back(_ringbuffers.cache(ringbuffer));
|
||||
_params.emplace_back(_swapChains.cache(swapChain));
|
||||
}
|
||||
|
||||
void Batch::clearFramebuffer(Framebuffer::Masks targets, const Vec4& color, float depth, int stencil, bool enableScissor) {
|
||||
|
|
|
@ -187,13 +187,13 @@ public:
|
|||
|
||||
void setResourceTexture(uint32 slot, const TexturePointer& texture);
|
||||
void setResourceTexture(uint32 slot, const TextureView& view); // not a command, just a shortcut from a TextureView
|
||||
void setResourceFramebufferRingTexture(uint32 slot, const FramebufferRingPointer& framebuffer, unsigned int ringIndex, unsigned int renderBufferSlot = 0U); // not a command, just a shortcut from a TextureView
|
||||
void setResourceFramebufferSwapChainTexture(uint32 slot, const FramebufferSwapChainPointer& framebuffer, unsigned int swpaChainIndex, unsigned int renderBufferSlot = 0U); // not a command, just a shortcut from a TextureView
|
||||
|
||||
// Ouput Stage
|
||||
void setFramebuffer(const FramebufferPointer& framebuffer);
|
||||
void setFramebufferRing(const FramebufferRingPointer& framebuffer, unsigned int ringIndex);
|
||||
void setFramebufferSwapChain(const FramebufferSwapChainPointer& framebuffer, unsigned int swapChainIndex);
|
||||
|
||||
void advance(const RingBufferPointer& ringbuffer);
|
||||
void advance(const SwapChainPointer& swapChain);
|
||||
|
||||
// Clear framebuffer layers
|
||||
// Targets can be any of the render buffers contained in the currnetly bound Framebuffer
|
||||
|
@ -302,10 +302,10 @@ public:
|
|||
COMMAND_setUniformBuffer,
|
||||
COMMAND_setResourceBuffer,
|
||||
COMMAND_setResourceTexture,
|
||||
COMMAND_setResourceFramebufferRingTexture,
|
||||
COMMAND_setResourceFramebufferSwapChainTexture,
|
||||
|
||||
COMMAND_setFramebuffer,
|
||||
COMMAND_setFramebufferRing,
|
||||
COMMAND_setFramebufferSwapChain,
|
||||
COMMAND_clearFramebuffer,
|
||||
COMMAND_blit,
|
||||
COMMAND_generateTextureMips,
|
||||
|
@ -428,7 +428,7 @@ public:
|
|||
typedef Cache<Transform>::Vector TransformCaches;
|
||||
typedef Cache<PipelinePointer>::Vector PipelineCaches;
|
||||
typedef Cache<FramebufferPointer>::Vector FramebufferCaches;
|
||||
typedef Cache<RingBufferPointer>::Vector RingBufferCaches;
|
||||
typedef Cache<SwapChainPointer>::Vector SwapChainCaches;
|
||||
typedef Cache<QueryPointer>::Vector QueryCaches;
|
||||
typedef Cache<std::string>::Vector StringCaches;
|
||||
typedef Cache<std::function<void()>>::Vector LambdaCache;
|
||||
|
@ -483,7 +483,7 @@ public:
|
|||
TransformCaches _transforms;
|
||||
PipelineCaches _pipelines;
|
||||
FramebufferCaches _framebuffers;
|
||||
RingBufferCaches _ringbuffers;
|
||||
SwapChainCaches _swapChains;
|
||||
QueryCaches _queries;
|
||||
LambdaCache _lambdas;
|
||||
StringCaches _profileRanges;
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#define hifi_gpu_Framebuffer_h
|
||||
|
||||
#include "Texture.h"
|
||||
#include "ResourceRing.h"
|
||||
#include "ResourceSwapChain.h"
|
||||
#include <memory>
|
||||
|
||||
class Transform; // Texcood transform util
|
||||
|
@ -178,8 +178,8 @@ protected:
|
|||
Framebuffer() {}
|
||||
};
|
||||
typedef std::shared_ptr<Framebuffer> FramebufferPointer;
|
||||
typedef ResourceRing<Framebuffer> FramebufferRing;
|
||||
typedef std::shared_ptr<FramebufferRing> FramebufferRingPointer;
|
||||
typedef ResourceSwapChain<Framebuffer> FramebufferSwapChain;
|
||||
typedef std::shared_ptr<FramebufferSwapChain> FramebufferSwapChainPointer;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -5,18 +5,18 @@
|
|||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
#ifndef hifi_gpu_ResourceRing_h
|
||||
#define hifi_gpu_ResourceRing_h
|
||||
#ifndef hifi_gpu_ResourceSwapChain_h
|
||||
#define hifi_gpu_ResourceSwapChain_h
|
||||
|
||||
#include <memory>
|
||||
#include <array>
|
||||
|
||||
namespace gpu {
|
||||
class RingBuffer {
|
||||
class SwapChain {
|
||||
public:
|
||||
|
||||
RingBuffer(unsigned int size = 2U) : _size{ size } {}
|
||||
virtual ~RingBuffer() {}
|
||||
SwapChain(unsigned int size = 2U) : _size{ size } {}
|
||||
virtual ~SwapChain() {}
|
||||
|
||||
void advance() {
|
||||
_frontIndex = (_frontIndex + 1) % _size;
|
||||
|
@ -29,10 +29,10 @@ namespace gpu {
|
|||
unsigned int _frontIndex{ 0U };
|
||||
|
||||
};
|
||||
typedef std::shared_ptr<RingBuffer> RingBufferPointer;
|
||||
typedef std::shared_ptr<SwapChain> SwapChainPointer;
|
||||
|
||||
template <class R>
|
||||
class ResourceRing : public RingBuffer {
|
||||
class ResourceSwapChain : public SwapChain {
|
||||
public:
|
||||
|
||||
enum {
|
||||
|
@ -42,7 +42,7 @@ namespace gpu {
|
|||
using Type = R;
|
||||
using TypePointer = std::shared_ptr<R>;
|
||||
|
||||
ResourceRing(unsigned int size = 2U) : RingBuffer{ size } {}
|
||||
ResourceSwapChain(unsigned int size = 2U) : SwapChain{ size } {}
|
||||
|
||||
void reset() {
|
||||
for (auto& ptr : _resources) {
|
|
@ -188,7 +188,7 @@ const int AntialiasingPass_NextMapSlot = 4;
|
|||
|
||||
|
||||
Antialiasing::Antialiasing() {
|
||||
_antialiasingBuffers = std::make_shared<gpu::FramebufferRing>(2U);
|
||||
_antialiasingBuffers = std::make_shared<gpu::FramebufferSwapChain>(2U);
|
||||
}
|
||||
|
||||
Antialiasing::~Antialiasing() {
|
||||
|
@ -343,7 +343,7 @@ void Antialiasing::run(const render::RenderContextPointer& renderContext, const
|
|||
|
||||
// TAA step
|
||||
getAntialiasingPipeline();
|
||||
batch.setResourceFramebufferRingTexture(AntialiasingPass_HistoryMapSlot, _antialiasingBuffers, 0);
|
||||
batch.setResourceFramebufferSwapChainTexture(AntialiasingPass_HistoryMapSlot, _antialiasingBuffers, 0);
|
||||
batch.setResourceTexture(AntialiasingPass_SourceMapSlot, sourceBuffer->getRenderBuffer(0));
|
||||
batch.setResourceTexture(AntialiasingPass_VelocityMapSlot, velocityBuffer->getVelocityTexture());
|
||||
batch.setResourceTexture(AntialiasingPass_DepthMapSlot, linearDepthBuffer->getLinearDepthTexture());
|
||||
|
@ -351,7 +351,7 @@ void Antialiasing::run(const render::RenderContextPointer& renderContext, const
|
|||
batch.setUniformBuffer(AntialiasingPass_ParamsSlot, _params);
|
||||
batch.setUniformBuffer(AntialiasingPass_FrameTransformSlot, deferredFrameTransform->getFrameTransformBuffer());
|
||||
|
||||
batch.setFramebufferRing(_antialiasingBuffers, 1);
|
||||
batch.setFramebufferSwapChain(_antialiasingBuffers, 1);
|
||||
batch.setPipeline(getAntialiasingPipeline());
|
||||
batch.draw(gpu::TRIANGLE_STRIP, 4);
|
||||
|
||||
|
@ -364,7 +364,7 @@ void Antialiasing::run(const render::RenderContextPointer& renderContext, const
|
|||
} else {
|
||||
batch.setPipeline(getBlendPipeline());
|
||||
}
|
||||
batch.setResourceFramebufferRingTexture(AntialiasingPass_NextMapSlot, _antialiasingBuffers, 1);
|
||||
batch.setResourceFramebufferSwapChainTexture(AntialiasingPass_NextMapSlot, _antialiasingBuffers, 1);
|
||||
batch.draw(gpu::TRIANGLE_STRIP, 4);
|
||||
batch.advance(_antialiasingBuffers);
|
||||
|
||||
|
|
|
@ -191,7 +191,7 @@ private:
|
|||
// Uniforms for AA
|
||||
gpu::int32 _texcoordOffsetLoc;
|
||||
|
||||
gpu::FramebufferRingPointer _antialiasingBuffers;
|
||||
gpu::FramebufferSwapChainPointer _antialiasingBuffers;
|
||||
gpu::TexturePointer _antialiasingTextures[2];
|
||||
|
||||
gpu::PipelinePointer _antialiasingPipeline;
|
||||
|
|
Loading…
Reference in a new issue