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 ...@@ -481,7 +481,7 @@ namespace sw
UNIMPLEMENTED("Variable initializers not yet supported"); UNIMPLEMENTED("Variable initializers not yet supported");
auto &object = defs[resultId]; auto &object = defs[resultId];
object.kind = Object::Kind::NonDivergentPointer; object.kind = Object::Kind::Pointer;
object.definition = insn; object.definition = insn;
object.type = typeId; object.type = typeId;
...@@ -1260,13 +1260,10 @@ namespace sw ...@@ -1260,13 +1260,10 @@ namespace sw
auto &object = getObject(id); auto &object = getObject(id);
switch (object.kind) switch (object.kind)
{ {
case Object::Kind::NonDivergentPointer: case Object::Kind::Pointer:
case Object::Kind::InterfaceVariable: case Object::Kind::InterfaceVariable:
return routine->getPointer(id); return routine->getPointer(id);
case Object::Kind::DivergentPointer:
return routine->getPointer(id);
case Object::Kind::DescriptorSet: case Object::Kind::DescriptorSet:
{ {
const auto &d = descriptorDecorations.at(id); const auto &d = descriptorDecorations.at(id);
...@@ -1715,7 +1712,7 @@ namespace sw ...@@ -1715,7 +1712,7 @@ namespace sw
case spv::OpTypeImage: case spv::OpTypeImage:
case spv::OpTypeSampledImage: case spv::OpTypeSampledImage:
case spv::OpTypeSampler: case spv::OpTypeSampler:
object.kind = Object::Kind::DivergentPointer; object.kind = Object::Kind::Pointer;
break; break;
default: default:
...@@ -2534,7 +2531,7 @@ namespace sw ...@@ -2534,7 +2531,7 @@ namespace sw
const uint32_t *indexes = insn.wordPointer(4); const uint32_t *indexes = insn.wordPointer(4);
auto &type = getType(typeId); auto &type = getType(typeId);
ASSERT(type.sizeInComponents == 1); ASSERT(type.sizeInComponents == 1);
ASSERT(getObject(resultId).kind == Object::Kind::DivergentPointer); ASSERT(getObject(resultId).kind == Object::Kind::Pointer);
if(type.storageClass == spv::StorageClassPushConstant || if(type.storageClass == spv::StorageClassPushConstant ||
type.storageClass == spv::StorageClassUniform || type.storageClass == spv::StorageClassUniform ||
......
...@@ -377,13 +377,8 @@ namespace sw ...@@ -377,13 +377,8 @@ namespace sw
// Value held by SpirvRoutine::intermediates. // Value held by SpirvRoutine::intermediates.
Intermediate, Intermediate,
// DivergentPointer formed from a base pointer and per-lane offset.
// Pointer held by SpirvRoutine::pointers // Pointer held by SpirvRoutine::pointers
DivergentPointer, Pointer,
// Pointer with uniform address across all lanes.
// Pointer held by SpirvRoutine::pointers
NonDivergentPointer,
// A pointer to a vk::DescriptorSet*. // A pointer to a vk::DescriptorSet*.
// Pointer held by SpirvRoutine::pointers. // 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