Fail more gracefully with some unsupported opcodes.

This commit is contained in:
Hans-Kristian Arntzen 2018-07-02 13:22:21 +02:00
Родитель 26107ba200
Коммит af2d3abd03
1 изменённых файлов: 34 добавлений и 0 удалений

Просмотреть файл

@ -4493,6 +4493,16 @@ void CompilerGLSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop,
emit_binary_func_op(result_type, id, args[0], args[1], "interpolateAtOffset");
break;
case GLSLstd450NMin:
emit_binary_func_op(result_type, id, args[0], args[1], "unsupported_glsl450_nmin");
break;
case GLSLstd450NMax:
emit_binary_func_op(result_type, id, args[0], args[1], "unsupported_glsl450_nmax");
break;
case GLSLstd450NClamp:
emit_binary_func_op(result_type, id, args[0], args[1], "unsupported_glsl450_nclamp");
break;
default:
statement("// unimplemented GLSL op ", eop);
break;
@ -7996,6 +8006,30 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction)
emit_subgroup_op(instruction);
break;
case OpFUnordEqual:
GLSL_BFOP(unsupported_FUnordEqual);
break;
case OpFUnordNotEqual:
GLSL_BFOP(unsupported_FUnordNotEqual);
break;
case OpFUnordLessThan:
GLSL_BFOP(unsupported_FUnordLessThan);
break;
case OpFUnordGreaterThan:
GLSL_BFOP(unsupported_FUnordGreaterThan);
break;
case OpFUnordLessThanEqual:
GLSL_BFOP(unsupported_FUnordLessThanEqual);
break;
case OpFUnordGreaterThanEqual:
GLSL_BFOP(unsupported_FUnordGreaterThanEqual);
break;
default:
statement("// unimplemented op ", instruction.op);
break;