Commit 1d514f34 by Ben Clayton

SpirvShader: Combine DivergentPointer and NonDivergentPointer

There's only one type of pointer now. Bug: b/131224163 Change-Id: Ie285affbdd05fdfc878f8144b3c6569547634f6d Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/29570Tested-by: 's avatarBen Clayton <bclayton@google.com> Presubmit-Ready: Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent 0fc611f1
......@@ -481,7 +481,7 @@ namespace sw
UNIMPLEMENTED("Variable initializers not yet supported");
auto &object = defs[resultId];
object.kind = Object::Kind::NonDivergentPointer;
object.kind = Object::Kind::Pointer;
object.definition = insn;
object.type = typeId;
......@@ -1260,13 +1260,10 @@ namespace sw
auto &object = getObject(id);
switch (object.kind)
{
case Object::Kind::NonDivergentPointer:
case Object::Kind::Pointer:
case Object::Kind::InterfaceVariable:
return routine->getPointer(id);
case Object::Kind::DivergentPointer:
return routine->getPointer(id);
case Object::Kind::DescriptorSet:
{
const auto &d = descriptorDecorations.at(id);
......@@ -1715,7 +1712,7 @@ namespace sw
case spv::OpTypeImage:
case spv::OpTypeSampledImage:
case spv::OpTypeSampler:
object.kind = Object::Kind::DivergentPointer;
object.kind = Object::Kind::Pointer;
break;
default:
......@@ -2534,7 +2531,7 @@ namespace sw
const uint32_t *indexes = insn.wordPointer(4);
auto &type = getType(typeId);
ASSERT(type.sizeInComponents == 1);
ASSERT(getObject(resultId).kind == Object::Kind::DivergentPointer);
ASSERT(getObject(resultId).kind == Object::Kind::Pointer);
if(type.storageClass == spv::StorageClassPushConstant ||
type.storageClass == spv::StorageClassUniform ||
......
......@@ -377,13 +377,8 @@ namespace sw
// Value held by SpirvRoutine::intermediates.
Intermediate,
// DivergentPointer formed from a base pointer and per-lane offset.
// Pointer held by SpirvRoutine::pointers
DivergentPointer,
// Pointer with uniform address across all lanes.
// Pointer held by SpirvRoutine::pointers
NonDivergentPointer,
Pointer,
// A pointer to a vk::DescriptorSet*.
// Pointer held by SpirvRoutine::pointers.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment