Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions source/core/slang-memory-arena.h
Original file line number Diff line number Diff line change
Expand Up @@ -382,19 +382,17 @@ inline const char* MemoryArena::allocateString(const char* chars, size_t numChar
template<typename T>
SLANG_FORCE_INLINE T* MemoryArena::allocate()
{
void* mem = (alignof(T) <= kMinAlignment)
? allocate(sizeof(T))
: allocateAligned(sizeof(T), alignof(T));
void* mem = (alignof(T) <= kMinAlignment) ? allocate(sizeof(T))
: allocateAligned(sizeof(T), alignof(T));
return reinterpret_cast<T*>(mem);
}

// --------------------------------------------------------------------------
template<typename T>
SLANG_FORCE_INLINE T* MemoryArena::allocateArray(size_t numElems)
{
return (numElems > 0)
? reinterpret_cast<T*>(allocateAligned(sizeof(T) * numElems, alignof(T)))
: nullptr;
return (numElems > 0) ? reinterpret_cast<T*>(allocateAligned(sizeof(T) * numElems, alignof(T)))
: nullptr;
}

// --------------------------------------------------------------------------
Expand Down
37 changes: 9 additions & 28 deletions source/slang/slang-type-layout.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1195,60 +1195,41 @@ struct CPUObjectLayoutRulesImpl : ObjectLayoutRulesImpl
case ShaderParameterKind::ConstantBuffer:
case ShaderParameterKind::ParameterBlock:
// It's a pointer to the actual uniform data
return SimpleLayoutInfo(
LayoutResourceKind::Uniform,
sizeof(void*),
alignof(void*));
return SimpleLayoutInfo(LayoutResourceKind::Uniform, sizeof(void*), alignof(void*));

case ShaderParameterKind::MutableTexture:
case ShaderParameterKind::TextureUniformBuffer:
case ShaderParameterKind::Texture:
// It's a pointer to a texture interface
return SimpleLayoutInfo(
LayoutResourceKind::Uniform,
sizeof(void*),
alignof(void*));
return SimpleLayoutInfo(LayoutResourceKind::Uniform, sizeof(void*), alignof(void*));

case ShaderParameterKind::StructuredBuffer:
case ShaderParameterKind::MutableStructuredBuffer:
case ShaderParameterKind::AppendConsumeStructuredBuffer:
// It's a ptr and a size of the amount of elements
return SimpleLayoutInfo(
LayoutResourceKind::Uniform,
sizeof(void*) * 2,
alignof(void*));
return SimpleLayoutInfo(LayoutResourceKind::Uniform, sizeof(void*) * 2, alignof(void*));

case ShaderParameterKind::RawBuffer:
case ShaderParameterKind::Buffer:
case ShaderParameterKind::MutableRawBuffer:
case ShaderParameterKind::MutableBuffer:
// It's a pointer and a size in bytes
return SimpleLayoutInfo(
LayoutResourceKind::Uniform,
sizeof(void*) * 2,
alignof(void*));
return SimpleLayoutInfo(LayoutResourceKind::Uniform, sizeof(void*) * 2, alignof(void*));

case ShaderParameterKind::ShaderStorageBuffer:
case ShaderParameterKind::AccelerationStructure:
case ShaderParameterKind::SamplerState:
// It's a pointer
return SimpleLayoutInfo(
LayoutResourceKind::Uniform,
sizeof(void*),
alignof(void*));
return SimpleLayoutInfo(LayoutResourceKind::Uniform, sizeof(void*), alignof(void*));

case ShaderParameterKind::TextureSampler:
case ShaderParameterKind::MutableTextureSampler:
{
ObjectLayoutInfo info;
info.layoutInfos.add(SimpleLayoutInfo(
LayoutResourceKind::Uniform,
sizeof(void*),
alignof(void*)));
info.layoutInfos.add(SimpleLayoutInfo(
LayoutResourceKind::Uniform,
sizeof(void*),
alignof(void*)));
info.layoutInfos.add(
SimpleLayoutInfo(LayoutResourceKind::Uniform, sizeof(void*), alignof(void*)));
info.layoutInfos.add(
SimpleLayoutInfo(LayoutResourceKind::Uniform, sizeof(void*), alignof(void*)));
return info;
}
case ShaderParameterKind::InputRenderTarget:
Expand Down
Loading