diff options
author | Greg Daniel <egdaniel@google.com> | 2017-05-02 14:01:43 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-05-02 19:17:23 +0000 |
commit | a754378ef659dcc0bca9179719123e32891fb605 (patch) | |
tree | a0b819d62ed0625e015baf2dcd42715a6ca8d9a9 /src/gpu/vk/GrVkUniformHandler.h | |
parent | 0dd30d99282c48cb3b5d50939a4b200ace6b8c71 (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.h | 8 |
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; |