提交 7c416718 编写于 作者: A A. Unique TensorFlower 提交者: TensorFlower Gardener

Fix build with libc++, which follows recent changes to the specification of...

Fix build with libc++, which follows recent changes to the specification of std::variant, disallowing certain implicit conversions during initialization.

PiperOrigin-RevId: 257683060
上级 75ba8613
......@@ -85,8 +85,7 @@ inline const ObjectData* GetData(const Object& object) {
inline size_t ByteSizeOf(const Object& object);
// @return object that references an object created externally.
template <typename SizeT>
inline Object MakeObjectRef(ObjectRef unique_id, const SizeT& size,
inline Object MakeObjectRef(ObjectRef unique_id, const ObjectSize& size,
AccessType access_type) {
return Object{access_type, DataType::FLOAT32, ObjectType::UNKNOWN, 0,
size, unique_id};
......@@ -122,8 +121,8 @@ inline size_t ByteSizeOf(const Object& object) {
return SizeOf(object.data_type) * /* vec4 */ 4 * NumElements(object.size);
}
template <typename SizeT>
Object MakeReadonlyObject(const SizeT& size, const std::vector<float>& data) {
inline Object MakeReadonlyObject(const ObjectSize& size,
const std::vector<float>& data) {
return Object{AccessType::READ,
DataType::FLOAT32,
ObjectType::UNKNOWN,
......@@ -132,8 +131,8 @@ Object MakeReadonlyObject(const SizeT& size, const std::vector<float>& data) {
internal_object::ToBytesVector(data, 16)};
}
template <typename SizeT>
Object MakeReadonlyTexture(const SizeT& size, const std::vector<float>& data) {
inline Object MakeReadonlyTexture(const ObjectSize& size,
const std::vector<float>& data) {
return Object{AccessType::READ,
DataType::FLOAT32,
ObjectType::TEXTURE,
......@@ -142,8 +141,8 @@ Object MakeReadonlyTexture(const SizeT& size, const std::vector<float>& data) {
internal_object::ToBytesVector(data, 16)};
}
template <typename SizeT>
Object MakeReadonlyBuffer(const SizeT& size, const std::vector<float>& data) {
inline Object MakeReadonlyBuffer(const ObjectSize& size,
const std::vector<float>& data) {
return Object{AccessType::READ,
DataType::FLOAT32,
ObjectType::BUFFER,
......@@ -153,15 +152,18 @@ Object MakeReadonlyBuffer(const SizeT& size, const std::vector<float>& data) {
}
inline Object MakeReadonlyObject(const std::vector<float>& data) {
return MakeReadonlyObject(IntegralDivideRoundUp(data.size(), 4U), data);
return MakeReadonlyObject(
IntegralDivideRoundUp(static_cast<uint32_t>(data.size()), 4U), data);
}
inline Object MakeReadonlyTexture(const std::vector<float>& data) {
return MakeReadonlyTexture(IntegralDivideRoundUp(data.size(), 4U), data);
return MakeReadonlyTexture(
IntegralDivideRoundUp(static_cast<uint32_t>(data.size()), 4U), data);
}
inline Object MakeReadonlyBuffer(const std::vector<float>& data) {
return MakeReadonlyBuffer(IntegralDivideRoundUp(data.size(), 4U), data);
return MakeReadonlyBuffer(
IntegralDivideRoundUp(static_cast<uint32_t>(data.size()), 4U), data);
}
// TODO(akulik): find better place for functions below.
......
......@@ -543,7 +543,8 @@ Status Runtime::AssignInternalObjects(std::vector<Object>* shared_objects) {
shared_object.object = shared_ref;
if (shared_object.object_type == ObjectType::BUFFER) {
// Make a buffer linear.
shared_object.size = NumElements(object.size);
shared_object.size =
static_cast<uint32_t>(NumElements(object.size));
}
shared_objects->push_back(std::move(shared_object));
is_used_shared_object.push_back(false);
......@@ -552,8 +553,8 @@ Status Runtime::AssignInternalObjects(std::vector<Object>* shared_objects) {
Object& shared_object = (*shared_objects)[shared_ref];
switch (object.object_type) {
case ObjectType::BUFFER:
shared_object.size = std::max(NumElements(object.size),
NumElements(shared_object.size));
shared_object.size = std::max<uint32_t>(
NumElements(object.size), NumElements(shared_object.size));
break;
case ObjectType::TEXTURE: {
if (!FitSize(object.size, shared_object.size,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册