Skip to content

Commit

Permalink
upper layer adaptions
Browse files Browse the repository at this point in the history
  • Loading branch information
YunHsiao committed Aug 21, 2020
1 parent 8b5a360 commit f124374
Show file tree
Hide file tree
Showing 43 changed files with 2,650 additions and 1,506 deletions.
32 changes: 24 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -461,8 +461,6 @@ cocos_source_files(
cocos/renderer/core/CoreStd.h
cocos/renderer/core/gfx/GFXObject.h
cocos/renderer/core/gfx/GFXObject.cc
cocos/renderer/core/gfx/GFXBindingLayout.cc
cocos/renderer/core/gfx/GFXBindingLayout.h
cocos/renderer/core/gfx/GFXBuffer.cc
cocos/renderer/core/gfx/GFXBuffer.h
cocos/renderer/core/gfx/GFXCommand.h
Expand All @@ -479,6 +477,12 @@ cocos_source_files(
cocos/renderer/core/gfx/GFXFramebuffer.h
cocos/renderer/core/gfx/GFXInputAssembler.cc
cocos/renderer/core/gfx/GFXInputAssembler.h
cocos/renderer/core/gfx/GFXDescriptorSet.cc
cocos/renderer/core/gfx/GFXDescriptorSet.h
cocos/renderer/core/gfx/GFXDescriptorSetLayout.cc
cocos/renderer/core/gfx/GFXDescriptorSetLayout.h
cocos/renderer/core/gfx/GFXPipelineLayout.cc
cocos/renderer/core/gfx/GFXPipelineLayout.h
cocos/renderer/core/gfx/GFXPipelineState.cc
cocos/renderer/core/gfx/GFXPipelineState.h
cocos/renderer/core/gfx/GFXQueue.cc
Expand Down Expand Up @@ -547,8 +551,6 @@ cocos_source_files(
if(CC_USE_GLES2)
cocos_source_files(
cocos/renderer/gfx-gles2/GFXGLES2.h
cocos/renderer/gfx-gles2/GLES2BindingLayout.cc
cocos/renderer/gfx-gles2/GLES2BindingLayout.h
cocos/renderer/gfx-gles2/GLES2Buffer.cc
cocos/renderer/gfx-gles2/GLES2Buffer.h
cocos/renderer/gfx-gles2/GLES2CommandAllocator.cc
Expand All @@ -565,6 +567,12 @@ if(CC_USE_GLES2)
cocos/renderer/gfx-gles2/GLES2GPUObjects.h
cocos/renderer/gfx-gles2/GLES2InputAssembler.cc
cocos/renderer/gfx-gles2/GLES2InputAssembler.h
cocos/renderer/gfx-gles2/GLES2DescriptorSet.cc
cocos/renderer/gfx-gles2/GLES2DescriptorSet.h
cocos/renderer/gfx-gles2/GLES2DescriptorSetLayout.cc
cocos/renderer/gfx-gles2/GLES2DescriptorSetLayout.h
cocos/renderer/gfx-gles2/GLES2PipelineLayout.cc
cocos/renderer/gfx-gles2/GLES2PipelineLayout.h
cocos/renderer/gfx-gles2/GLES2PipelineState.cc
cocos/renderer/gfx-gles2/GLES2PipelineState.h
cocos/renderer/gfx-gles2/GLES2Queue.cc
Expand Down Expand Up @@ -602,8 +610,6 @@ endif()
if(CC_USE_GLES3)
cocos_source_files(
cocos/renderer/gfx-gles3/GFXGLES3.h
cocos/renderer/gfx-gles3/GLES3BindingLayout.cc
cocos/renderer/gfx-gles3/GLES3BindingLayout.h
cocos/renderer/gfx-gles3/GLES3Buffer.cc
cocos/renderer/gfx-gles3/GLES3Buffer.h
cocos/renderer/gfx-gles3/GLES3CommandAllocator.cc
Expand All @@ -621,6 +627,12 @@ if(CC_USE_GLES3)
cocos/renderer/gfx-gles3/GLES3GPUObjects.h
cocos/renderer/gfx-gles3/GLES3InputAssembler.cc
cocos/renderer/gfx-gles3/GLES3InputAssembler.h
cocos/renderer/gfx-gles3/GLES3DescriptorSet.cc
cocos/renderer/gfx-gles3/GLES3DescriptorSet.h
cocos/renderer/gfx-gles3/GLES3DescriptorSetLayout.cc
cocos/renderer/gfx-gles3/GLES3DescriptorSetLayout.h
cocos/renderer/gfx-gles3/GLES3PipelineLayout.cc
cocos/renderer/gfx-gles3/GLES3PipelineLayout.h
cocos/renderer/gfx-gles3/GLES3PipelineState.cc
cocos/renderer/gfx-gles3/GLES3PipelineState.h
cocos/renderer/gfx-gles3/GLES3Queue.cc
Expand Down Expand Up @@ -703,8 +715,6 @@ if(CC_USE_VULKAN)
cocos_source_files(
cocos/renderer/gfx-vulkan/GFXVulkan.h
cocos/renderer/gfx-vulkan/vk_mem_alloc.h
cocos/renderer/gfx-vulkan/VKBindingLayout.cc
cocos/renderer/gfx-vulkan/VKBindingLayout.h
cocos/renderer/gfx-vulkan/VKBuffer.cc
cocos/renderer/gfx-vulkan/VKBuffer.h
cocos/renderer/gfx-vulkan/VKCommandBuffer.cc
Expand All @@ -720,6 +730,12 @@ if(CC_USE_VULKAN)
cocos/renderer/gfx-vulkan/VKGPUObjects.h
cocos/renderer/gfx-vulkan/VKInputAssembler.cc
cocos/renderer/gfx-vulkan/VKInputAssembler.h
cocos/renderer/gfx-vulkan/VKDescriptorSet.cc
cocos/renderer/gfx-vulkan/VKDescriptorSet.h
cocos/renderer/gfx-vulkan/VKDescriptorSetLayout.cc
cocos/renderer/gfx-vulkan/VKDescriptorSetLayout.h
cocos/renderer/gfx-vulkan/VKPipelineLayout.cc
cocos/renderer/gfx-vulkan/VKPipelineLayout.h
cocos/renderer/gfx-vulkan/VKPipelineState.cc
cocos/renderer/gfx-vulkan/VKPipelineState.h
cocos/renderer/gfx-vulkan/VKQueue.cc
Expand Down
28 changes: 28 additions & 0 deletions cocos/base/CachedArray.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,18 @@ class CachedArray : public Object {
CC_INLINE uint size() const { return _size; }
CC_INLINE T pop() { return _array[--_size]; }

void resize(uint size) {
if (size >= _capacity) {
T *temp = _array;
_array = CC_NEW_ARRAY(T, size);
for (uint i = 0; i < _capacity; ++i) {
_array[i] = temp[i];
}
_capacity = size;
CC_DELETE_ARRAY(temp);
}
}

void push(T item) {
if (_size >= _capacity) {
T *temp = _array;
Expand Down Expand Up @@ -95,6 +107,22 @@ class CachedArray : public Object {
}
}

void concat(uint count, T *array) {
if (_size + count >= _capacity) {
T *temp = _array;
uint size = std::max(_capacity * 2, _size + count);
_array = CC_NEW_ARRAY(T, size);
for (uint i = 0; i < _size; ++i) {
_array[i] = temp[i];
}
_capacity = size;
CC_DELETE_ARRAY(temp);
}
for (uint i = 0; i < count; ++i) {
_array[_size++] = array[i];
}
}

void fastRemove(uint idx) {
if (idx >= _size) {
return;
Expand Down
3 changes: 3 additions & 0 deletions cocos/renderer/core/gfx/GFXCommandBuffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ class CC_DLL CommandBuffer : public GFXObject {
CC_INLINE void begin(RenderPass *renderPass) { begin(renderPass, 0, nullptr); }
CC_INLINE void begin(RenderPass *renderPass, uint subpass) { begin(renderPass, subpass, nullptr); }
CC_INLINE void bindDescriptorSet(uint set, DescriptorSet *descriptorSet) { bindDescriptorSet(set, descriptorSet, 0, nullptr); }
CC_INLINE void bindDescriptorSet(uint set, DescriptorSet *descriptorSet, const vector<uint> &dynamicOffsets) {
bindDescriptorSet(set, descriptorSet, dynamicOffsets.size(), dynamicOffsets.data());
}

CC_INLINE Device *getDevice() const { return _device; }
CC_INLINE Queue *getQueue() const { return _queue; }
Expand Down
3 changes: 1 addition & 2 deletions cocos/renderer/core/gfx/GFXDef.h
Original file line number Diff line number Diff line change
Expand Up @@ -807,9 +807,8 @@ struct UniformSampler {
typedef vector<UniformSampler> UniformSamplerList;

struct ShaderStage {
ShaderStageFlagBit type;
ShaderStageFlagBit stage;
String source;
ShaderMacroList macros;
};

typedef vector<ShaderStage> ShaderStageList;
Expand Down
10 changes: 3 additions & 7 deletions cocos/renderer/gfx-gles2/GLES2CommandBuffer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ bool GLES2CommandBuffer::initialize(const CommandBufferInfo &info) {

_gles2Allocator = ((GLES2Device *)_device)->cmdAllocator();

size_t setCount = ((GLES2Device *)_device)->bindingMappingInfo().bufferOffsets.size();
uint setCount = ((GLES2Device *)_device)->bindingMappingInfo().bufferOffsets.size();
_curGPUDescriptorSets.resize(setCount);
_curDynamicOffsets.resize(setCount);

Expand All @@ -52,9 +52,7 @@ void GLES2CommandBuffer::begin(RenderPass *renderPass, uint subpass, Framebuffer
_curGPUPipelineState = nullptr;
_curGPUInputAssember = nullptr;
_curGPUDescriptorSets.assign(_curGPUDescriptorSets.size(), nullptr);
for (size_t i = 0u; i < _curDynamicOffsets.size(); i++) {
_curDynamicOffsets[i].clear();
}
for (vector<uint> &offsets : _curDynamicOffsets) offsets.clear();

_numDrawCalls = 0;
_numInstances = 0;
Expand Down Expand Up @@ -99,9 +97,7 @@ void GLES2CommandBuffer::bindPipelineState(PipelineState *pso) {
}

void GLES2CommandBuffer::bindDescriptorSet(uint set, DescriptorSet *descriptorSet, uint dynamicOffsetCount, const uint *dynamicOffsets) {
// these will break if using more sets than what's declared in DeviceInfo.bindingMappingInfo
CCASSERT(_curGPUDescriptorSets.size() > set, "");
CCASSERT(_curDynamicOffsets.size() > set, "");
CCASSERT(_curGPUDescriptorSets.size() > set, "Invalid set index");

GLES2GPUDescriptorSet *gpuDescriptorSet = ((GLES2DescriptorSet *)descriptorSet)->gpuDescriptorSet();
if (_curGPUDescriptorSets[set] != gpuDescriptorSet) {
Expand Down

0 comments on commit f124374

Please sign in to comment.