mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-11 21:58:31 +09:00
[Fix] (MG_Impl, MG_State, MG_Backend, MG_Util): Do source audit by Codex.
This commit is contained in:
@@ -200,6 +200,10 @@ namespace MobileGL {
|
||||
size_t commentStartPos = source.find("/*");
|
||||
while (commentStartPos != String::npos) {
|
||||
size_t commentEndPos = source.find("*/", commentStartPos);
|
||||
if (commentEndPos == String::npos) {
|
||||
source.erase(commentStartPos);
|
||||
break;
|
||||
}
|
||||
// + length of "*/"
|
||||
source = source.replace(commentStartPos, commentEndPos - commentStartPos + 2, "");
|
||||
commentStartPos = source.find("/*", commentStartPos);
|
||||
|
||||
@@ -120,11 +120,27 @@ namespace MobileGL {
|
||||
less_operands.push_back({SPV_OPERAND_TYPE_ID, {abs_inst->result_id()}});
|
||||
less_operands.push_back({SPV_OPERAND_TYPE_ID, {eps_id}});
|
||||
|
||||
bool isEqualOp =
|
||||
(inst.opcode() == spv::Op::OpFOrdEqual || inst.opcode() == spv::Op::OpFUnordEqual);
|
||||
spv::Op replacementOp = spv::Op::OpNop;
|
||||
switch (inst.opcode()) {
|
||||
case spv::Op::OpFOrdEqual:
|
||||
replacementOp = spv::Op::OpFOrdLessThan;
|
||||
break;
|
||||
case spv::Op::OpFUnordEqual:
|
||||
replacementOp = spv::Op::OpFUnordLessThan;
|
||||
break;
|
||||
case spv::Op::OpFOrdNotEqual:
|
||||
replacementOp = spv::Op::OpFOrdGreaterThanEqual;
|
||||
break;
|
||||
case spv::Op::OpFUnordNotEqual:
|
||||
replacementOp = spv::Op::OpFUnordGreaterThanEqual;
|
||||
break;
|
||||
default:
|
||||
MOBILEGL_ASSERT(false, "Unexpected float compare opcode: %d",
|
||||
static_cast<int>(inst.opcode()));
|
||||
break;
|
||||
}
|
||||
Instruction* less_than_inst = builder.AddInstruction(MakeUnique<Instruction>(
|
||||
context(), isEqualOp ? spv::Op::OpFOrdLessThan : spv::Op::OpFOrdGreaterThanEqual,
|
||||
bool_type_id, context()->TakeNextId(), less_operands));
|
||||
context(), replacementOp, bool_type_id, context()->TakeNextId(), less_operands));
|
||||
|
||||
// 5. Replaces all uses of old insn with new one
|
||||
context()->ReplaceAllUsesWith(inst.result_id(), less_than_inst->result_id());
|
||||
@@ -149,4 +165,4 @@ namespace MobileGL {
|
||||
}
|
||||
} // namespace ShaderTranspiler
|
||||
} // namespace MG_Util
|
||||
} // namespace MobileGL
|
||||
} // namespace MobileGL
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace MobileGL {
|
||||
|
||||
class SpvcSession {
|
||||
public:
|
||||
SpvcSession() {}
|
||||
SpvcSession() = default;
|
||||
|
||||
explicit SpvcSession(const Vector<unsigned int>& spirv,
|
||||
Flags<SessionUsageBit> usage);
|
||||
@@ -97,7 +97,7 @@ namespace MobileGL {
|
||||
spvc_result ParseMetaData();
|
||||
|
||||
private:
|
||||
Flags<SessionUsageBit> usage;
|
||||
Flags<SessionUsageBit> usage{};
|
||||
|
||||
// SPIRV-Cross state (used when Transpile flag is set)
|
||||
spvc_context context = nullptr;
|
||||
@@ -114,4 +114,4 @@ namespace MobileGL {
|
||||
};
|
||||
} // namespace ShaderTranspiler
|
||||
} // namespace MG_Util
|
||||
} // namespace MobileGL
|
||||
} // namespace MobileGL
|
||||
|
||||
Reference in New Issue
Block a user