aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk/GrVkUniformHandler.h
diff options
context:
space:
mode:
authorGravatar Greg Daniel <egdaniel@google.com>2017-05-02 14:01:43 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-05-02 19:17:23 +0000
commita754378ef659dcc0bca9179719123e32891fb605 (patch)
treea0b819d62ed0625e015baf2dcd42715a6ca8d9a9 /src/gpu/vk/GrVkUniformHandler.h
parent0dd30d99282c48cb3b5d50939a4b200ace6b8c71 (diff)
Setup support for UNIFORM_TEXEL_BUFFER descriptor sets in Vulkan
This is the first CL to get support for using texel buffers in vulkan. Bug: skia: Change-Id: Iaac5ba4a356b487bc2b63111cca34ed968881f6b Reviewed-on: https://skia-review.googlesource.com/15100 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src/gpu/vk/GrVkUniformHandler.h')
-rw-r--r--src/gpu/vk/GrVkUniformHandler.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gpu/vk/GrVkUniformHandler.h b/src/gpu/vk/GrVkUniformHandler.h
index 808eed7fb3..8cfd1a9da1 100644
--- a/src/gpu/vk/GrVkUniformHandler.h
+++ b/src/gpu/vk/GrVkUniformHandler.h
@@ -19,6 +19,7 @@ public:
enum {
kUniformBufferDescSet = 0,
kSamplerDescSet = 1,
+ kTexelBufferDescSet = 2,
};
enum {
kVertexBinding = 0,
@@ -46,6 +47,7 @@ private:
: INHERITED(program)
, fUniforms(kUniformsPerBlock)
, fSamplers(kUniformsPerBlock)
+ , fTexelBuffers(kUniformsPerBlock)
, fCurrentVertexUBOOffset(0)
, fCurrentFragmentUBOOffset(0)
, fCurrentSamplerBinding(0) {
@@ -76,6 +78,11 @@ private:
return fSamplers[handle.toIndex()].fVisibility;
}
+ int numTexelBuffers() const { return fTexelBuffers.count(); }
+ uint32_t texelBufferVisibility(SamplerHandle handle) const {
+ return fTexelBuffers[handle.toIndex()].fVisibility;
+ }
+
ImageStorageHandle addImageStorage(uint32_t visibility, GrSLType, GrImageStorageFormat,
GrSLMemoryModel, GrSLRestrict, GrIOType,
const char* name) override {
@@ -103,6 +110,7 @@ private:
UniformInfoArray fUniforms;
UniformInfoArray fSamplers;
SkTArray<GrSwizzle> fSamplerSwizzles;
+ UniformInfoArray fTexelBuffers;
uint32_t fCurrentVertexUBOOffset;
uint32_t fCurrentFragmentUBOOffset;