aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2018-07-12 14:53:49 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-07-13 00:45:54 +0000
commit662ea4baba570d2f21a7b33d268204e9bdfa7fb9 (patch)
tree71da861d0d9b8f014e7f09f89b122480e067e8c0 /src/gpu/vk
parent13ac194dbf9968d356e580b85420f1314f453a10 (diff)
Remove texel buffer support.
Change-Id: Ia6f21afe714208979a5bc384e436b28ea2b9a297 Reviewed-on: https://skia-review.googlesource.com/141051 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/vk')
-rw-r--r--src/gpu/vk/GrVkCaps.cpp2
-rw-r--r--src/gpu/vk/GrVkDescriptorSetManager.cpp34
-rw-r--r--src/gpu/vk/GrVkGpu.cpp6
-rw-r--r--src/gpu/vk/GrVkPipelineState.cpp128
-rw-r--r--src/gpu/vk/GrVkPipelineState.h13
-rw-r--r--src/gpu/vk/GrVkPipelineStateBuilder.cpp12
-rw-r--r--src/gpu/vk/GrVkTexelBuffer.cpp73
-rw-r--r--src/gpu/vk/GrVkTexelBuffer.h37
-rw-r--r--src/gpu/vk/GrVkUniformHandler.cpp34
-rw-r--r--src/gpu/vk/GrVkUniformHandler.h14
10 files changed, 14 insertions, 339 deletions
diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp
index 58a7778b5e..8181569af3 100644
--- a/src/gpu/vk/GrVkCaps.cpp
+++ b/src/gpu/vk/GrVkCaps.cpp
@@ -392,8 +392,6 @@ void GrVkCaps::initShaderCaps(const VkPhysicalDeviceProperties& properties, uint
shaderCaps->fDualSourceBlendingSupport = SkToBool(featureFlags & kDualSrcBlend_GrVkFeatureFlag);
shaderCaps->fIntegerSupport = true;
- shaderCaps->fTexelBufferSupport = true;
- shaderCaps->fTexelFetchSupport = true;
shaderCaps->fVertexIDSupport = true;
shaderCaps->fFPManipulationSupport = true;
diff --git a/src/gpu/vk/GrVkDescriptorSetManager.cpp b/src/gpu/vk/GrVkDescriptorSetManager.cpp
index 7d70b337df..b032584378 100644
--- a/src/gpu/vk/GrVkDescriptorSetManager.cpp
+++ b/src/gpu/vk/GrVkDescriptorSetManager.cpp
@@ -29,15 +29,9 @@ GrVkDescriptorSetManager* GrVkDescriptorSetManager::CreateUniformManager(GrVkGpu
GrVkDescriptorSetManager* GrVkDescriptorSetManager::CreateSamplerManager(
GrVkGpu* gpu, VkDescriptorType type, const GrVkUniformHandler& uniformHandler) {
SkSTArray<4, uint32_t> visibilities;
- if (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == type) {
- for (int i = 0 ; i < uniformHandler.numSamplers(); ++i) {
- visibilities.push_back(uniformHandler.samplerVisibility(i));
- }
- } else {
- SkASSERT(type == VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER);
- for (int i = 0 ; i < uniformHandler.numTexelBuffers(); ++i) {
- visibilities.push_back(uniformHandler.texelBufferVisibility(i));
- }
+ SkASSERT(type == VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER);
+ for (int i = 0 ; i < uniformHandler.numSamplers(); ++i) {
+ visibilities.push_back(uniformHandler.samplerVisibility(i));
}
return CreateSamplerManager(gpu, type, visibilities);
}
@@ -103,24 +97,14 @@ bool GrVkDescriptorSetManager::isCompatible(VkDescriptorType type,
return false;
}
- if (type == VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER) {
- if (fBindingVisibilities.count() != uniHandler->numSamplers()) {
- return false;
- }
- for (int i = 0; i < uniHandler->numSamplers(); ++i) {
- if (uniHandler->samplerVisibility(i) != fBindingVisibilities[i]) {
- return false;
- }
- }
- } else if (VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER == type) {
- if (fBindingVisibilities.count() != uniHandler->numTexelBuffers()) {
+ SkASSERT(type == VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER);
+ if (fBindingVisibilities.count() != uniHandler->numSamplers()) {
+ return false;
+ }
+ for (int i = 0; i < uniHandler->numSamplers(); ++i) {
+ if (uniHandler->samplerVisibility(i) != fBindingVisibilities[i]) {
return false;
}
- for (int i = 0; i < uniHandler->numTexelBuffers(); ++i) {
- if (uniHandler->texelBufferVisibility(i) != fBindingVisibilities[i]) {
- return false;
- }
- }
}
return true;
}
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 689966a61c..36d65a9215 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -27,7 +27,6 @@
#include "GrVkRenderPass.h"
#include "GrVkResourceProvider.h"
#include "GrVkSemaphore.h"
-#include "GrVkTexelBuffer.h"
#include "GrVkTexture.h"
#include "GrVkTextureRenderTarget.h"
#include "GrVkTransferBuffer.h"
@@ -276,11 +275,6 @@ GrBuffer* GrVkGpu::onCreateBuffer(size_t size, GrBufferType type, GrAccessPatter
kStream_GrAccessPattern == accessPattern);
buff = GrVkTransferBuffer::Create(this, size, GrVkBuffer::kCopyWrite_Type);
break;
- case kTexel_GrBufferType:
- SkASSERT(kDynamic_GrAccessPattern == accessPattern ||
- kStatic_GrAccessPattern == accessPattern);
- buff = GrVkTexelBuffer::Create(this, size, kDynamic_GrAccessPattern == accessPattern);
- break;
case kDrawIndirect_GrBufferType:
SK_ABORT("DrawIndirect Buffers not supported in vulkan backend.");
return nullptr;
diff --git a/src/gpu/vk/GrVkPipelineState.cpp b/src/gpu/vk/GrVkPipelineState.cpp
index 84aa68248c..9080128bef 100644
--- a/src/gpu/vk/GrVkPipelineState.cpp
+++ b/src/gpu/vk/GrVkPipelineState.cpp
@@ -21,7 +21,6 @@
#include "GrVkPipeline.h"
#include "GrVkPipelineLayout.h"
#include "GrVkSampler.h"
-#include "GrVkTexelBuffer.h"
#include "GrVkTexture.h"
#include "GrVkUniformBuffer.h"
#include "SkMipMap.h"
@@ -34,13 +33,11 @@ GrVkPipelineState::GrVkPipelineState(
GrVkPipeline* pipeline,
VkPipelineLayout layout,
const GrVkDescriptorSetManager::Handle& samplerDSHandle,
- const GrVkDescriptorSetManager::Handle& texelBufferDSHandle,
const GrGLSLBuiltinUniformHandles& builtinUniformHandles,
const UniformInfoArray& uniforms,
uint32_t geometryUniformSize,
uint32_t fragmentUniformSize,
uint32_t numSamplers,
- uint32_t numTexelBuffers,
std::unique_ptr<GrGLSLPrimitiveProcessor> geometryProcessor,
std::unique_ptr<GrGLSLXferProcessor> xferProcessor,
std::unique_ptr<std::unique_ptr<GrGLSLFragmentProcessor>[]> fragmentProcessors,
@@ -49,9 +46,7 @@ GrVkPipelineState::GrVkPipelineState(
, fPipelineLayout(new GrVkPipelineLayout(layout))
, fUniformDescriptorSet(nullptr)
, fSamplerDescriptorSet(nullptr)
- , fTexelBufferDescriptorSet(nullptr)
, fSamplerDSHandle(samplerDSHandle)
- , fTexelBufferDSHandle(texelBufferDSHandle)
, fBuiltinUniformHandles(builtinUniformHandles)
, fGeometryProcessor(std::move(geometryProcessor))
, fXferProcessor(std::move(xferProcessor))
@@ -61,8 +56,6 @@ GrVkPipelineState::GrVkPipelineState(
fSamplers.setReserve(numSamplers);
fTextureViews.setReserve(numSamplers);
fTextures.setReserve(numSamplers);
- fBufferViews.setReserve(numTexelBuffers);
- fTexelBuffers.setReserve(numTexelBuffers);
fDescriptorSets[0] = VK_NULL_HANDLE;
fDescriptorSets[1] = VK_NULL_HANDLE;
@@ -72,7 +65,6 @@ GrVkPipelineState::GrVkPipelineState(
fFragmentUniformBuffer.reset(GrVkUniformBuffer::Create(gpu, fragmentUniformSize));
fNumSamplers = numSamplers;
- fNumTexelBuffers = numTexelBuffers;
}
GrVkPipelineState::~GrVkPipelineState() {
@@ -82,8 +74,6 @@ GrVkPipelineState::~GrVkPipelineState() {
SkASSERT(!fSamplers.count());
SkASSERT(!fTextureViews.count());
SkASSERT(!fTextures.count());
- SkASSERT(!fBufferViews.count());
- SkASSERT(!fTexelBuffers.count());
}
void GrVkPipelineState::freeTempResources(const GrVkGpu* gpu) {
@@ -101,16 +91,6 @@ void GrVkPipelineState::freeTempResources(const GrVkGpu* gpu) {
fTextures[i]->unref(gpu);
}
fTextures.rewind();
-
- for (int i = 0; i < fBufferViews.count(); ++i) {
- fBufferViews[i]->unref(gpu);
- }
- fBufferViews.rewind();
-
- for (int i = 0; i < fTexelBuffers.count(); ++i) {
- fTexelBuffers[i]->unref(gpu);
- }
- fTexelBuffers.rewind();
}
void GrVkPipelineState::freeGPUResources(const GrVkGpu* gpu) {
@@ -142,12 +122,6 @@ void GrVkPipelineState::freeGPUResources(const GrVkGpu* gpu) {
fSamplerDescriptorSet = nullptr;
}
- if (fTexelBufferDescriptorSet) {
- fTexelBufferDescriptorSet->recycle(const_cast<GrVkGpu*>(gpu));
- fTexelBufferDescriptorSet = nullptr;
- }
-
-
this->freeTempResources(gpu);
}
@@ -180,16 +154,6 @@ void GrVkPipelineState::abandonGPUResources() {
}
fTextures.rewind();
- for (int i = 0; i < fBufferViews.count(); ++i) {
- fBufferViews[i]->unrefAndAbandon();
- }
- fBufferViews.rewind();
-
- for (int i = 0; i < fTexelBuffers.count(); ++i) {
- fTexelBuffers[i]->unrefAndAbandon();
- }
-
- fTexelBuffers.rewind();
if (fUniformDescriptorSet) {
fUniformDescriptorSet->unrefAndAbandon();
fUniformDescriptorSet = nullptr;
@@ -199,17 +163,11 @@ void GrVkPipelineState::abandonGPUResources() {
fSamplerDescriptorSet->unrefAndAbandon();
fSamplerDescriptorSet = nullptr;
}
-
- if (fTexelBufferDescriptorSet) {
- fTexelBufferDescriptorSet->unrefAndAbandon();
- fTexelBufferDescriptorSet = nullptr;
- }
}
static void append_texture_bindings(
const GrResourceIOProcessor& processor,
- SkTArray<const GrResourceIOProcessor::TextureSampler*>* textureBindings,
- SkTArray<const GrResourceIOProcessor::BufferAccess*>* bufferAccesses) {
+ SkTArray<const GrResourceIOProcessor::TextureSampler*>* textureBindings) {
if (int numTextureSamplers = processor.numTextureSamplers()) {
const GrResourceIOProcessor::TextureSampler** bindings =
textureBindings->push_back_n(numTextureSamplers);
@@ -218,14 +176,6 @@ static void append_texture_bindings(
bindings[i] = &processor.textureSampler(i);
} while (++i < numTextureSamplers);
}
- if (int numTexelBuffers = processor.numBuffers()) {
- const GrResourceIOProcessor::BufferAccess** accesses =
- bufferAccesses->push_back_n(numTexelBuffers);
- int i = 0;
- do {
- accesses[i] = &processor.bufferAccess(i);
- } while (++i < numTexelBuffers);
- }
}
void GrVkPipelineState::setData(GrVkGpu* gpu,
@@ -238,11 +188,10 @@ void GrVkPipelineState::setData(GrVkGpu* gpu,
this->setRenderTargetState(pipeline.proxy());
SkSTArray<8, const GrResourceIOProcessor::TextureSampler*> textureBindings;
- SkSTArray<8, const GrResourceIOProcessor::BufferAccess*> bufferAccesses;
fGeometryProcessor->setData(fDataManager, primProc,
GrFragmentProcessor::CoordTransformIter(pipeline));
- append_texture_bindings(primProc, &textureBindings, &bufferAccesses);
+ append_texture_bindings(primProc, &textureBindings);
GrFragmentProcessor::Iter iter(pipeline);
GrGLSLFragmentProcessor::Iter glslIter(fFragmentProcessors.get(), fFragmentProcessorCnt);
@@ -250,7 +199,7 @@ void GrVkPipelineState::setData(GrVkGpu* gpu,
GrGLSLFragmentProcessor* glslFP = glslIter.next();
while (fp && glslFP) {
glslFP->setData(fDataManager, *fp);
- append_texture_bindings(*fp, &textureBindings, &bufferAccesses);
+ append_texture_bindings(*fp, &textureBindings);
fp = iter.next();
glslFP = glslIter.next();
}
@@ -283,17 +232,6 @@ void GrVkPipelineState::setData(GrVkGpu* gpu,
this->writeSamplers(gpu, textureBindings);
}
- if (fNumTexelBuffers) {
- if (fTexelBufferDescriptorSet) {
- fTexelBufferDescriptorSet->recycle(gpu);
- }
- fTexelBufferDescriptorSet =
- gpu->resourceProvider().getSamplerDescriptorSet(fTexelBufferDSHandle);
- int texelBufferDSIdx = GrVkUniformHandler::kTexelBufferDescSet;
- fDescriptorSets[texelBufferDSIdx] = fTexelBufferDescriptorSet->descriptorSet();
- this->writeTexelBuffers(gpu, bufferAccesses);
- }
-
if (fGeometryUniformBuffer || fFragmentUniformBuffer) {
if (fDataManager.uploadUniformBuffers(gpu,
fGeometryUniformBuffer.get(),
@@ -417,49 +355,6 @@ void GrVkPipelineState::writeSamplers(
}
}
-void GrVkPipelineState::writeTexelBuffers(
- GrVkGpu* gpu,
- const SkTArray<const GrResourceIOProcessor::BufferAccess*>& bufferAccesses) {
- SkASSERT(fNumTexelBuffers == bufferAccesses.count());
-
- for (int i = 0; i < bufferAccesses.count(); ++i) {
- GrPixelConfig config = bufferAccesses[i]->texelConfig();
- VkFormat format;
- SkAssertResult(GrPixelConfigToVkFormat(config, &format));
-
- GrVkTexelBuffer* buffer = static_cast<GrVkTexelBuffer*>(bufferAccesses[i]->buffer());
-
- const GrVkBufferView* bufferView = GrVkBufferView::Create(gpu, buffer->buffer(),
- format, buffer->offset(),
- buffer->size());
- fBufferViews.push(bufferView);
-
- const GrVkResource* bufferResource = buffer->resource();
- bufferResource->ref();
- fTexelBuffers.push(bufferResource);
-
- VkWriteDescriptorSet writeInfo;
- memset(&writeInfo, 0, sizeof(VkWriteDescriptorSet));
- writeInfo.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
- writeInfo.pNext = nullptr;
- writeInfo.dstSet = fDescriptorSets[GrVkUniformHandler::kTexelBufferDescSet];
- writeInfo.dstBinding = i;
- writeInfo.dstArrayElement = 0;
- writeInfo.descriptorCount = 1;
- writeInfo.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER;
- writeInfo.pImageInfo = nullptr;
- writeInfo.pBufferInfo = nullptr;
- VkBufferView vkBufferView = bufferView->bufferView();
- writeInfo.pTexelBufferView = &vkBufferView;
-
- GR_VK_CALL(gpu->vkInterface(), UpdateDescriptorSets(gpu->device(),
- 1,
- &writeInfo,
- 0,
- nullptr));
- }
-}
-
void GrVkPipelineState::setRenderTargetState(const GrRenderTargetProxy* proxy) {
GrRenderTarget* rt = proxy->priv().peekRenderTarget();
@@ -499,12 +394,6 @@ void GrVkPipelineState::bind(const GrVkGpu* gpu, GrVkCommandBuffer* commandBuffe
dsIndex, 1,
&fDescriptorSets[dsIndex], 0, nullptr);
}
- if (fNumTexelBuffers) {
- int dsIndex = GrVkUniformHandler::kTexelBufferDescSet;
- commandBuffer->bindDescriptorSets(gpu, this, fPipelineLayout,
- dsIndex, 1,
- &fDescriptorSets[dsIndex], 0, nullptr);
- }
}
void GrVkPipelineState::addUniformResources(GrVkCommandBuffer& commandBuffer) {
@@ -514,9 +403,6 @@ void GrVkPipelineState::addUniformResources(GrVkCommandBuffer& commandBuffer) {
if (fSamplerDescriptorSet) {
commandBuffer.addRecycledResource(fSamplerDescriptorSet);
}
- if (fTexelBufferDescriptorSet) {
- commandBuffer.addRecycledResource(fTexelBufferDescriptorSet);
- }
if (fGeometryUniformBuffer.get()) {
commandBuffer.addRecycledResource(fGeometryUniformBuffer->resource());
@@ -536,12 +422,4 @@ void GrVkPipelineState::addUniformResources(GrVkCommandBuffer& commandBuffer) {
for (int i = 0; i < fTextures.count(); ++i) {
commandBuffer.addResource(fTextures[i]);
}
-
- for (int i = 0; i < fBufferViews.count(); ++i) {
- commandBuffer.addResource(fBufferViews[i]);
- }
-
- for (int i = 0; i < fTexelBuffers.count(); ++i) {
- commandBuffer.addResource(fTexelBuffers[i]);
- }
}
diff --git a/src/gpu/vk/GrVkPipelineState.h b/src/gpu/vk/GrVkPipelineState.h
index ee948a8519..a3320e5550 100644
--- a/src/gpu/vk/GrVkPipelineState.h
+++ b/src/gpu/vk/GrVkPipelineState.h
@@ -43,13 +43,11 @@ public:
GrVkPipeline* pipeline,
VkPipelineLayout layout,
const GrVkDescriptorSetManager::Handle& samplerDSHandle,
- const GrVkDescriptorSetManager::Handle& texelBufferDSHandle,
const GrGLSLBuiltinUniformHandles& builtinUniformHandles,
const UniformInfoArray& uniforms,
uint32_t geometryUniformSize,
uint32_t fragmentUniformSize,
uint32_t numSamplers,
- uint32_t numTexelBuffers,
std::unique_ptr<GrGLSLPrimitiveProcessor> geometryProcessor,
std::unique_ptr<GrGLSLXferProcessor> xferProcessor,
std::unique_ptr<std::unique_ptr<GrGLSLFragmentProcessor>[]> fragmentProcessors,
@@ -78,10 +76,6 @@ private:
GrVkGpu* gpu,
const SkTArray<const GrResourceIOProcessor::TextureSampler*>& textureBindings);
- void writeTexelBuffers(
- GrVkGpu* gpu,
- const SkTArray<const GrResourceIOProcessor::BufferAccess*>& bufferAccesses);
-
/**
* We use the RT's size and origin to adjust from Skia device space to vulkan normalized device
* space and to make device space positions have the correct origin for processors that require
@@ -137,10 +131,8 @@ private:
const GrVkDescriptorSet* fUniformDescriptorSet;
const GrVkDescriptorSet* fSamplerDescriptorSet;
- const GrVkDescriptorSet* fTexelBufferDescriptorSet;
const GrVkDescriptorSetManager::Handle fSamplerDSHandle;
- const GrVkDescriptorSetManager::Handle fTexelBufferDSHandle;
std::unique_ptr<GrVkUniformBuffer> fGeometryUniformBuffer;
std::unique_ptr<GrVkUniformBuffer> fFragmentUniformBuffer;
@@ -150,10 +142,6 @@ private:
SkTDArray<const GrVkImageView*> fTextureViews;
SkTDArray<const GrVkResource*> fTextures;
- // GrVkResource used for TexelBuffers
- SkTDArray<const GrVkBufferView*> fBufferViews;
- SkTDArray<const GrVkResource*> fTexelBuffers;
-
// Tracks the current render target uniforms stored in the vertex buffer.
RenderTargetState fRenderTargetState;
GrGLSLBuiltinUniformHandles fBuiltinUniformHandles;
@@ -167,7 +155,6 @@ private:
GrVkPipelineStateDataManager fDataManager;
int fNumSamplers;
- int fNumTexelBuffers;
};
#endif
diff --git a/src/gpu/vk/GrVkPipelineStateBuilder.cpp b/src/gpu/vk/GrVkPipelineStateBuilder.cpp
index c4c748ba9c..91685c6016 100644
--- a/src/gpu/vk/GrVkPipelineStateBuilder.cpp
+++ b/src/gpu/vk/GrVkPipelineStateBuilder.cpp
@@ -90,7 +90,7 @@ GrVkPipelineState* GrVkPipelineStateBuilder::finalize(const GrStencilSettings& s
GrPrimitiveType primitiveType,
const GrVkRenderPass& renderPass,
Desc* desc) {
- VkDescriptorSetLayout dsLayout[3];
+ VkDescriptorSetLayout dsLayout[2];
VkPipelineLayout pipelineLayout;
VkShaderModule vertShaderModule = VK_NULL_HANDLE;
VkShaderModule geomShaderModule = VK_NULL_HANDLE;
@@ -106,19 +106,13 @@ GrVkPipelineState* GrVkPipelineStateBuilder::finalize(const GrStencilSettings& s
dsLayout[GrVkUniformHandler::kSamplerDescSet] =
resourceProvider.getSamplerDSLayout(samplerDSHandle);
- GrVkDescriptorSetManager::Handle texelBufferDSHandle;
- resourceProvider.getSamplerDescriptorSetHandle(VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
- fUniformHandler, &texelBufferDSHandle);
- dsLayout[GrVkUniformHandler::kTexelBufferDescSet] =
- resourceProvider.getSamplerDSLayout(texelBufferDSHandle);
-
// Create the VkPipelineLayout
VkPipelineLayoutCreateInfo layoutCreateInfo;
memset(&layoutCreateInfo, 0, sizeof(VkPipelineLayoutCreateFlags));
layoutCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
layoutCreateInfo.pNext = 0;
layoutCreateInfo.flags = 0;
- layoutCreateInfo.setLayoutCount = 3;
+ layoutCreateInfo.setLayoutCount = 2;
layoutCreateInfo.pSetLayouts = dsLayout;
layoutCreateInfo.pushConstantRangeCount = 0;
layoutCreateInfo.pPushConstantRanges = nullptr;
@@ -197,13 +191,11 @@ GrVkPipelineState* GrVkPipelineStateBuilder::finalize(const GrStencilSettings& s
pipeline,
pipelineLayout,
samplerDSHandle,
- texelBufferDSHandle,
fUniformHandles,
fUniformHandler.fUniforms,
fUniformHandler.fCurrentGeometryUBOOffset,
fUniformHandler.fCurrentFragmentUBOOffset,
(uint32_t)fUniformHandler.numSamplers(),
- (uint32_t)fUniformHandler.numTexelBuffers(),
std::move(fGeometryProcessor),
std::move(fXferProcessor),
std::move(fFragmentProcessors),
diff --git a/src/gpu/vk/GrVkTexelBuffer.cpp b/src/gpu/vk/GrVkTexelBuffer.cpp
deleted file mode 100644
index 501706cfb5..0000000000
--- a/src/gpu/vk/GrVkTexelBuffer.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2017 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "GrVkTexelBuffer.h"
-
-#include "GrVkGpu.h"
-
-GrVkTexelBuffer::GrVkTexelBuffer(GrVkGpu* gpu, const GrVkBuffer::Desc& desc,
- const GrVkBuffer::Resource* bufferResource)
- : INHERITED(gpu, desc.fSizeInBytes, kTexel_GrBufferType,
- kDynamic_GrAccessPattern)
- , GrVkBuffer(desc, bufferResource) {
- this->registerWithCache(SkBudgeted::kYes);
-}
-
-GrVkTexelBuffer* GrVkTexelBuffer::Create(GrVkGpu* gpu, size_t size, bool dynamic) {
- GrVkBuffer::Desc desc;
- desc.fDynamic = dynamic;
- desc.fType = GrVkBuffer::kTexel_Type;
- desc.fSizeInBytes = size;
-
- const GrVkBuffer::Resource* bufferResource = GrVkBuffer::Create(gpu, desc);
- if (!bufferResource) {
- return nullptr;
- }
- GrVkTexelBuffer* buffer = new GrVkTexelBuffer(gpu, desc, bufferResource);
- if (!buffer) {
- bufferResource->unref(gpu);
- }
- return buffer;
-}
-
-void GrVkTexelBuffer::onRelease() {
- if (!this->wasDestroyed()) {
- this->vkRelease(this->getVkGpu());
- }
-
- INHERITED::onRelease();
-}
-
-void GrVkTexelBuffer::onAbandon() {
- this->vkAbandon();
- INHERITED::onAbandon();
-}
-
-void GrVkTexelBuffer::onMap() {
- if (!this->wasDestroyed()) {
- this->GrBuffer::fMapPtr = this->vkMap(this->getVkGpu());
- }
-}
-
-void GrVkTexelBuffer::onUnmap() {
- if (!this->wasDestroyed()) {
- this->vkUnmap(this->getVkGpu());
- }
-}
-
-bool GrVkTexelBuffer::onUpdateData(const void* src, size_t srcSizeInBytes) {
- if (!this->wasDestroyed()) {
- return this->vkUpdateData(this->getVkGpu(), src, srcSizeInBytes);
- } else {
- return false;
- }
-}
-
-GrVkGpu* GrVkTexelBuffer::getVkGpu() const {
- SkASSERT(!this->wasDestroyed());
- return static_cast<GrVkGpu*>(this->getGpu());
-}
diff --git a/src/gpu/vk/GrVkTexelBuffer.h b/src/gpu/vk/GrVkTexelBuffer.h
deleted file mode 100644
index 0ca114d63e..0000000000
--- a/src/gpu/vk/GrVkTexelBuffer.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2017 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef GrVkTexelBuffer_DEFINED
-#define GrVkTexelBuffer_DEFINED
-
-#include "GrBuffer.h"
-#include "GrVkBuffer.h"
-
-class GrVkGpu;
-
-class GrVkTexelBuffer : public GrBuffer, public GrVkBuffer {
-public:
- static GrVkTexelBuffer* Create(GrVkGpu* gpu, size_t size, bool dynamic);
-
-protected:
- void onAbandon() override;
- void onRelease() override;
-
-private:
- GrVkTexelBuffer(GrVkGpu* gpu, const GrVkBuffer::Desc& desc,
- const GrVkBuffer::Resource* resource);
-
- void onMap() override;
- void onUnmap() override;
- bool onUpdateData(const void* src, size_t srcSizeInBytes) override;
-
- GrVkGpu* getVkGpu() const;
-
- typedef GrBuffer INHERITED;
-};
-
-#endif
diff --git a/src/gpu/vk/GrVkUniformHandler.cpp b/src/gpu/vk/GrVkUniformHandler.cpp
index 72b350983b..d92d8d2fd6 100644
--- a/src/gpu/vk/GrVkUniformHandler.cpp
+++ b/src/gpu/vk/GrVkUniformHandler.cpp
@@ -263,32 +263,6 @@ GrGLSLUniformHandler::SamplerHandle GrVkUniformHandler::addSampler(uint32_t visi
return GrGLSLUniformHandler::SamplerHandle(fSamplers.count() - 1);
}
-GrGLSLUniformHandler::TexelBufferHandle GrVkUniformHandler::addTexelBuffer(uint32_t visibility,
- GrSLPrecision precision,
- const char* name) {
- SkASSERT(name && strlen(name));
- SkDEBUGCODE(static const uint32_t kVisMask = kVertex_GrShaderFlag |
- kGeometry_GrShaderFlag |
- kFragment_GrShaderFlag);
- SkASSERT(0 == (~kVisMask & visibility));
- SkASSERT(0 != visibility);
- SkString mangleName;
- char prefix = 'u';
- fProgramBuilder->nameVariable(&mangleName, prefix, name, true);
-
- UniformInfo& info = fTexelBuffers.push_back();
- info.fVariable.setType(kBufferSampler_GrSLType);
- info.fVariable.setTypeModifier(GrShaderVar::kUniform_TypeModifier);
- info.fVariable.setPrecision(precision);
- info.fVariable.setName(mangleName);
- SkString layoutQualifier;
- layoutQualifier.appendf("set=%d, binding=%d", kTexelBufferDescSet, fTexelBuffers.count()- 1);
- info.fVariable.addLayoutQualifier(layoutQualifier.c_str());
- info.fVisibility = visibility;
- info.fUBOffset = 0;
- return GrGLSLUniformHandler::TexelBufferHandle(fTexelBuffers.count() - 1);
-}
-
void GrVkUniformHandler::appendUniformDecls(GrShaderFlags visibility, SkString* out) const {
SkASSERT(kVertex_GrShaderFlag == visibility ||
kGeometry_GrShaderFlag == visibility ||
@@ -303,14 +277,6 @@ void GrVkUniformHandler::appendUniformDecls(GrShaderFlags visibility, SkString*
}
}
- for (int i = 0; i < fTexelBuffers.count(); ++i) {
- const UniformInfo& texelBuffer = fTexelBuffers[i];
- if (visibility == texelBuffer.fVisibility) {
- texelBuffer.fVariable.appendDecl(fProgramBuilder->shaderCaps(), out);
- out->append(";\n");
- }
- }
-
#ifdef SK_DEBUG
bool firstGeomOffsetCheck = false;
bool firstFragOffsetCheck = false;
diff --git a/src/gpu/vk/GrVkUniformHandler.h b/src/gpu/vk/GrVkUniformHandler.h
index ebe9041789..7653abea67 100644
--- a/src/gpu/vk/GrVkUniformHandler.h
+++ b/src/gpu/vk/GrVkUniformHandler.h
@@ -19,7 +19,6 @@ public:
enum {
kUniformBufferDescSet = 0,
kSamplerDescSet = 1,
- kTexelBufferDescSet = 2,
};
enum {
kGeometryBinding = 0,
@@ -47,7 +46,6 @@ private:
: INHERITED(program)
, fUniforms(kUniformsPerBlock)
, fSamplers(kUniformsPerBlock)
- , fTexelBuffers(kUniformsPerBlock)
, fCurrentGeometryUBOOffset(0)
, fCurrentFragmentUBOOffset(0) {
}
@@ -77,17 +75,6 @@ private:
return fSamplers[handle.toIndex()].fVisibility;
}
- TexelBufferHandle addTexelBuffer(uint32_t visibility, GrSLPrecision,
- const char* name) override;
-
- int numTexelBuffers() const { return fTexelBuffers.count(); }
- const GrShaderVar& texelBufferVariable(TexelBufferHandle handle) const override {
- return fTexelBuffers[handle.toIndex()].fVariable;
- }
- uint32_t texelBufferVisibility(TexelBufferHandle handle) const {
- return fTexelBuffers[handle.toIndex()].fVisibility;
- }
-
void appendUniformDecls(GrShaderFlags, SkString*) const override;
bool hasGeometryUniforms() const { return fCurrentGeometryUBOOffset > 0; }
@@ -102,7 +89,6 @@ private:
UniformInfoArray fUniforms;
UniformInfoArray fSamplers;
SkTArray<GrSwizzle> fSamplerSwizzles;
- UniformInfoArray fTexelBuffers;
uint32_t fCurrentGeometryUBOOffset;
uint32_t fCurrentFragmentUBOOffset;