From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- .../ogles/GL/build/CG_Data_Types_frag.frag | 28 + .../ogles/GL/build/CG_Standard_Library_frag.frag | 15 + .../ogles/GL/build/CorrectBuiltInOveride_frag.frag | 22 + .../ogles/GL/build/CorrectComma_frag.frag | 22 + .../ogles/GL/build/CorrectConstFolding1_vert.vert | 36 ++ .../ogles/GL/build/CorrectConstFolding2_vert.vert | 421 +++++++++++++ .../ogles/GL/build/CorrectConstruct_vert.vert | 37 ++ .../GL/build/CorrectExtension10_V100_frag.frag | 26 + .../GL/build/CorrectExtension1_V100_frag.frag | 17 + .../GL/build/CorrectExtension4_V100_frag.frag | 18 + .../ogles/GL/build/CorrectFull_vert.vert | 654 +++++++++++++++++++++ .../ogles/GL/build/CorrectFuncOverload_frag.frag | 27 + .../ogles/GL/build/CorrectFuncOverload_vert.vert | 37 ++ .../ogles/GL/build/CorrectFunction1_vert.vert | 36 ++ .../ogles/GL/build/CorrectModule_frag.frag | 64 ++ .../ogles/GL/build/CorrectParse1_frag.frag | 51 ++ .../ogles/GL/build/CorrectParse2_frag.frag | 136 +++++ .../ogles/GL/build/CorrectParse2_vert.vert | 149 +++++ .../ogles/GL/build/CorrectParseTest1_frag.frag | 23 + .../ogles/GL/build/CorrectParseTest_frag.frag | 26 + .../ogles/GL/build/CorrectPreprocess5_frag.frag | 31 + .../ogles/GL/build/CorrectPreprocess8_frag.frag | 115 ++++ .../ogles/GL/build/CorrectPreprocess9_frag.frag | 32 + .../ogles/GL/build/CorrectSwizzle1_frag.frag | 24 + .../ogles/GL/build/CorrectSwizzle1_vert.vert | 17 + .../ogles/GL/build/CorrectSwizzle2_frag.frag | 39 ++ .../ogles/GL/build/CorrectSwizzle2_vert.vert | 17 + .../ogles/GL/build/CorrectSwizzle3_frag.frag | 24 + .../ogles/GL/build/CorrectVersion_V100_frag.frag | 19 + .../GL/build/DuplicateVersion1_V100_frag.frag | 19 + .../ogles/GL/build/FunctionParam_vert.vert | 21 + .../build/Include_Preprocessor_Directive_frag.frag | 12 + .../Low_Level_Assembly_Reserved_Words_frag.frag | 27 + .../ogles/GL/build/Main_Parameters_vert.vert | 12 + .../ogles/GL/build/ParseTest3_frag.frag | 20 + .../ogles/GL/build/ParseTest4_frag.frag | 16 + .../Permissive_Constant_Conversions_frag.frag | 15 + .../Permissive_Scalar_Vector_Expressions_frag.frag | 16 + .../conformance/ogles/GL/build/TernaryOp_frag.frag | 18 + .../GL/build/Texture_Rectangle_Samplers_frag.frag | 17 + .../conformance/ogles/GL/build/array10_frag.frag | 18 + .../conformance/ogles/GL/build/array11_frag.frag | 16 + .../conformance/ogles/GL/build/array1_frag.frag | 15 + .../conformance/ogles/GL/build/array2_frag.frag | 15 + .../conformance/ogles/GL/build/array3_frag.frag | 16 + .../conformance/ogles/GL/build/array4_frag.frag | 15 + .../conformance/ogles/GL/build/array5_frag.frag | 16 + .../conformance/ogles/GL/build/array6_frag.frag | 16 + .../conformance/ogles/GL/build/array7_frag.frag | 16 + .../conformance/ogles/GL/build/array8_frag.frag | 16 + .../conformance/ogles/GL/build/array9_frag.frag | 16 + .../ogles/GL/build/attribute1_vert.vert | 14 + .../ogles/GL/build/attribute2_vert.vert | 14 + .../conformance/ogles/GL/build/attribute_frag.frag | 15 + .../conformance/ogles/GL/build/attribute_vert.vert | 12 + .../conformance/ogles/GL/build/break_frag.frag | 15 + .../ogles/GL/build/build_001_to_008.html | 111 ++++ .../ogles/GL/build/build_009_to_016.html | 111 ++++ .../ogles/GL/build/build_017_to_024.html | 111 ++++ .../ogles/GL/build/build_025_to_032.html | 111 ++++ .../ogles/GL/build/build_033_to_040.html | 111 ++++ .../ogles/GL/build/build_041_to_048.html | 111 ++++ .../ogles/GL/build/build_049_to_056.html | 111 ++++ .../ogles/GL/build/build_057_to_064.html | 111 ++++ .../ogles/GL/build/build_065_to_072.html | 111 ++++ .../ogles/GL/build/build_073_to_080.html | 111 ++++ .../ogles/GL/build/build_081_to_088.html | 111 ++++ .../ogles/GL/build/build_089_to_096.html | 111 ++++ .../ogles/GL/build/build_097_to_104.html | 111 ++++ .../ogles/GL/build/build_105_to_112.html | 111 ++++ .../ogles/GL/build/build_113_to_120.html | 111 ++++ .../ogles/GL/build/build_121_to_128.html | 111 ++++ .../ogles/GL/build/build_129_to_136.html | 111 ++++ .../ogles/GL/build/build_137_to_144.html | 111 ++++ .../ogles/GL/build/build_145_to_152.html | 111 ++++ .../ogles/GL/build/build_153_to_160.html | 111 ++++ .../ogles/GL/build/build_161_to_168.html | 111 ++++ .../ogles/GL/build/build_169_to_176.html | 111 ++++ .../ogles/GL/build/build_177_to_178.html | 51 ++ .../conformance/ogles/GL/build/comma1_vert.vert | 16 + .../conformance/ogles/GL/build/comma2_frag.frag | 18 + .../conformance/ogles/GL/build/comma2_vert.vert | 16 + .../conformance/ogles/GL/build/comma3_vert.vert | 17 + .../conformance/ogles/GL/build/comment_frag.frag | 15 + .../ogles/GL/build/conditional1_frag.frag | 17 + .../ogles/GL/build/conditional2_frag.frag | 18 + .../ogles/GL/build/conditional3_frag.frag | 17 + .../conformance/ogles/GL/build/constFunc_frag.frag | 22 + .../ogles/GL/build/constructor1_frag.frag | 15 + .../ogles/GL/build/constructor2_frag.frag | 16 + .../ogles/GL/build/constructor3_V100_frag.frag | 16 + .../conformance/ogles/GL/build/continue_frag.frag | 15 + .../ogles/GL/build/dataType10_frag.frag | 16 + .../ogles/GL/build/dataType11_frag.frag | 15 + .../ogles/GL/build/dataType12_frag.frag | 15 + .../ogles/GL/build/dataType13_frag.frag | 17 + .../ogles/GL/build/dataType19_frag.frag | 16 + .../conformance/ogles/GL/build/dataType1_frag.frag | 15 + .../conformance/ogles/GL/build/dataType2_frag.frag | 17 + .../conformance/ogles/GL/build/dataType3_frag.frag | 16 + .../conformance/ogles/GL/build/dataType4_frag.frag | 15 + .../conformance/ogles/GL/build/dataType5_frag.frag | 15 + .../conformance/ogles/GL/build/dataType6_frag.frag | 15 + .../conformance/ogles/GL/build/dataType7_frag.frag | 16 + .../conformance/ogles/GL/build/dataType8_frag.frag | 16 + .../conformance/ogles/GL/build/dataType9_frag.frag | 18 + .../conformance/ogles/GL/build/default.frag | 15 + .../conformance/ogles/GL/build/default.vert | 15 + .../conformance/ogles/GL/build/dowhile_frag.frag | 17 + .../conformance/ogles/GL/build/dvec2_frag.frag | 15 + .../conformance/ogles/GL/build/dvec3_frag.frag | 15 + .../conformance/ogles/GL/build/dvec4_frag.frag | 15 + .../ogles/GL/build/extension2_V100_frag.frag | 17 + .../ogles/GL/build/extension3_V100_frag.frag | 16 + .../ogles/GL/build/extension5_V100_frag.frag | 16 + .../ogles/GL/build/extension6_V100_frag.frag | 16 + .../ogles/GL/build/extension7_V100_frag.frag | 16 + .../ogles/GL/build/extension8_V100_frag.frag | 16 + .../ogles/GL/build/extension9_V100_frag.frag | 16 + .../conformance/ogles/GL/build/float2_frag.frag | 15 + .../conformance/ogles/GL/build/float3_frag.frag | 15 + .../conformance/ogles/GL/build/float4_frag.frag | 15 + .../ogles/GL/build/fragmentOnly1_vert.vert | 12 + .../ogles/GL/build/fragmentOnly2_vert.vert | 12 + .../ogles/GL/build/fragmentOnly3_vert.vert | 12 + .../ogles/GL/build/fragmentOnly4_vert.vert | 12 + .../ogles/GL/build/fragmentOnly_vert.vert | 12 + .../ogles/GL/build/function10_frag.frag | 24 + .../conformance/ogles/GL/build/function1_frag.frag | 23 + .../ogles/GL/build/function2_V100_frag.frag | 22 + .../conformance/ogles/GL/build/function3_frag.frag | 23 + .../conformance/ogles/GL/build/function4_frag.frag | 23 + .../conformance/ogles/GL/build/function6_frag.frag | 23 + .../conformance/ogles/GL/build/function7_frag.frag | 22 + .../conformance/ogles/GL/build/function8_frag.frag | 23 + .../conformance/ogles/GL/build/function9_frag.frag | 24 + .../conformance/ogles/GL/build/hvec2_frag.frag | 15 + .../conformance/ogles/GL/build/hvec3_frag.frag | 15 + .../conformance/ogles/GL/build/hvec4_frag.frag | 15 + .../ogles/GL/build/identifier1_frag.frag | 15 + .../ogles/GL/build/identifier2_frag.frag | 15 + .../ogles/GL/build/identifier3_frag.frag | 16 + .../conformance/ogles/GL/build/if1_frag.frag | 17 + .../conformance/ogles/GL/build/if2_frag.frag | 18 + .../ogles/GL/build/increment1_frag.frag | 20 + .../ogles/GL/build/increment2_frag.frag | 16 + .../ogles/GL/build/increment3_frag.frag | 17 + .../ogles/GL/build/increment4_frag.frag | 16 + .../ogles/GL/build/increment6_frag.frag | 16 + .../conformance/ogles/GL/build/input.run.txt | 24 + .../conformance/ogles/GL/build/main1_vert.vert | 11 + .../conformance/ogles/GL/build/main2_vert.vert | 12 + .../conformance/ogles/GL/build/main3_vert.vert | 12 + .../ogles/GL/build/matrix_V100_frag.frag | 16 + .../conformance/ogles/GL/build/normal_vert.vert | 13 + .../conformance/ogles/GL/build/parser10_frag.frag | 15 + .../conformance/ogles/GL/build/parser1_vert.vert | 13 + .../conformance/ogles/GL/build/parser3_frag.frag | 16 + .../conformance/ogles/GL/build/parser4_frag.frag | 16 + .../conformance/ogles/GL/build/parser5_frag.frag | 16 + .../conformance/ogles/GL/build/parser6_frag.frag | 16 + .../conformance/ogles/GL/build/parser7_frag.frag | 16 + .../conformance/ogles/GL/build/parser8_frag.frag | 17 + .../conformance/ogles/GL/build/parser9_frag.frag | 16 + .../ogles/GL/build/preprocess0_frag.frag | 63 ++ .../ogles/GL/build/preprocess10_frag.frag | 19 + .../ogles/GL/build/preprocess1_frag.frag | 64 ++ .../ogles/GL/build/preprocess2_frag.frag | 60 ++ .../ogles/GL/build/preprocess3_frag.frag | 43 ++ .../ogles/GL/build/preprocess4_frag.frag | 60 ++ .../ogles/GL/build/preprocess6_frag.frag | 37 ++ .../ogles/GL/build/preprocess7_frag.frag | 51 ++ .../conformance/ogles/GL/build/scoping1_frag.frag | 21 + .../conformance/ogles/GL/build/scoping2_frag.frag | 19 + .../conformance/ogles/GL/build/struct10_frag.frag | 19 + .../conformance/ogles/GL/build/struct11_frag.frag | 19 + .../conformance/ogles/GL/build/struct1_frag.frag | 18 + .../conformance/ogles/GL/build/struct2_frag.frag | 18 + .../conformance/ogles/GL/build/struct3_frag.frag | 18 + .../conformance/ogles/GL/build/struct4_frag.frag | 18 + .../conformance/ogles/GL/build/struct5_frag.frag | 19 + .../conformance/ogles/GL/build/struct6_frag.frag | 18 + .../conformance/ogles/GL/build/struct7_frag.frag | 16 + .../conformance/ogles/GL/build/struct8_frag.frag | 23 + .../conformance/ogles/GL/build/struct9_frag.frag | 19 + .../conformance/ogles/GL/build/swizzle1_frag.frag | 16 + .../conformance/ogles/GL/build/swizzle2_frag.frag | 16 + .../conformance/ogles/GL/build/swizzle3_frag.frag | 16 + .../conformance/ogles/GL/build/typecast_frag.frag | 16 + .../conformance/ogles/GL/build/uniform1_frag.frag | 23 + .../conformance/ogles/GL/build/uniform_frag.frag | 15 + .../conformance/ogles/GL/build/varying1_frag.frag | 17 + .../conformance/ogles/GL/build/varying2_frag.frag | 17 + .../conformance/ogles/GL/build/varying3_frag.frag | 17 + .../conformance/ogles/GL/build/varying_frag.frag | 15 + .../conformance/ogles/GL/build/vector_frag.frag | 16 + .../ogles/GL/build/version2_V100_frag.frag | 19 + .../ogles/GL/build/version3_V100_frag.frag | 19 + .../ogles/GL/build/vertexOnly2_frag.frag | 15 + .../ogles/GL/build/vertexOnly_frag.frag | 25 + .../conformance/ogles/GL/build/vertex_vert.vert | 13 + .../conformance/ogles/GL/build/while1_frag.frag | 17 + .../conformance/ogles/GL/build/while2_frag.frag | 16 + .../conformance/ogles/GL/build/while_frag.frag | 17 + 204 files changed, 7458 insertions(+) create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CG_Data_Types_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CG_Standard_Library_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectBuiltInOveride_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectComma_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstFolding1_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstFolding2_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstruct_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension10_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension1_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension4_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFull_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFuncOverload_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFuncOverload_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFunction1_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectModule_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse2_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParseTest1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParseTest_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess5_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess8_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess9_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle1_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle2_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectVersion_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/DuplicateVersion1_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/FunctionParam_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Include_Preprocessor_Directive_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Low_Level_Assembly_Reserved_Words_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Main_Parameters_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/ParseTest3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/ParseTest4_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Permissive_Constant_Conversions_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Permissive_Scalar_Vector_Expressions_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/TernaryOp_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Texture_Rectangle_Samplers_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array10_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array11_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array4_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array5_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array6_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array7_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array8_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array9_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute1_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute2_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/break_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_001_to_008.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_009_to_016.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_017_to_024.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_025_to_032.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_033_to_040.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_041_to_048.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_049_to_056.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_057_to_064.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_065_to_072.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_073_to_080.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_081_to_088.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_089_to_096.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_097_to_104.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_105_to_112.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_113_to_120.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_121_to_128.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_129_to_136.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_137_to_144.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_145_to_152.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_153_to_160.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_161_to_168.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_169_to_176.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_177_to_178.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma1_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma2_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma3_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comment_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constFunc_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor3_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/continue_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType10_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType11_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType12_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType13_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType19_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType4_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType5_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType6_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType7_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType8_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType9_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/default.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/default.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dowhile_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec4_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension2_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension3_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension5_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension6_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension7_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension8_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension9_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float4_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly1_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly2_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly3_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly4_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function10_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function2_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function4_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function6_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function7_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function8_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function9_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec4_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/if1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/if2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment4_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment6_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/input.run.txt create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main1_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main2_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main3_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/matrix_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/normal_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser10_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser1_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser4_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser5_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser6_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser7_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser8_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser9_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess0_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess10_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess4_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess6_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess7_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/scoping1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/scoping2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct10_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct11_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct4_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct5_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct6_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct7_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct8_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct9_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/typecast_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/uniform1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/uniform_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying3_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vector_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/version2_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/version3_V100_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertexOnly2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertexOnly_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertex_vert.vert create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while1_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while2_frag.frag create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while_frag.frag (limited to 'dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build') diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CG_Data_Types_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CG_Data_Types_frag.frag new file mode 100644 index 0000000000..4f31090ebf --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CG_Data_Types_frag.frag @@ -0,0 +1,28 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + half h1; // Not a basic type. + half2 h2; // Not a basic type. + half3 h3; // Not a basic type. + half4 h4; // Not a basic type. + float2 f2; // Not a basic type. + float3 f3; // Not a basic type. + float4 f4; // Not a basic type. + fixed fx1; // Not a basic type. + fixed2 fx2; // Not a basic type. + fixed3 fx3; // Not a basic type. + fixed4 fx4; // Not a basic type. + float3x3 f3x3; // Not a basic type. + float2x4 f2x4; // Not a basic type. + half4x4 h4x4; // Not a basic type. +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CG_Standard_Library_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CG_Standard_Library_frag.frag new file mode 100644 index 0000000000..392680ee1a --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CG_Standard_Library_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i = round(1.3); // round is not a built-in function. +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectBuiltInOveride_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectBuiltInOveride_frag.frag new file mode 100644 index 0000000000..07ba3ef37b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectBuiltInOveride_frag.frag @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump int; +#endif + +int radians(int f) +{ + return f; +} + +void main() +{ + int f = 45; + f = radians(f); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectComma_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectComma_frag.frag new file mode 100644 index 0000000000..8b671d79b6 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectComma_frag.frag @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct s { + float f; + vec3 v; +}; + +void main() +{ + const vec4 v = (vec4(1,2,3,4), vec4(5,6,7,8)); // 5,6,7,8 + const s s1 = (s(9.0, vec3(10,11,12)), s(13.0, vec3(14,15,16))); // 13,14,15,16 + gl_FragColor = v + vec4(s1.f, s1.v); // 18, 20, 22, 24 +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstFolding1_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstFolding1_vert.vert new file mode 100644 index 0000000000..89a3bc584f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstFolding1_vert.vert @@ -0,0 +1,36 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + + const struct s2 { + int i; + vec3 v3; + bvec4 bv4; + } s22 = s2(8, vec3(9, 10, 11), bvec4(true, false, true, false)); + + struct s4 { + int ii; + vec4 v4; + }; + + const struct s1 { + s2 ss; + int i; + float f; + mat4 m; + s4 s44; + } s11 = s1(s22, 2, 4.0, mat4(5), s4(6, vec4(7, 8, 9, 10))) ; + + const int field3 = s11.i * s11.ss.i; // constant folding (int * int) + const vec4 field4 = s11.s44.v4 * s11.s44.v4; // constant folding (vec4 * vec4) + // 49, 64, 81, 100 + const vec4 v4 = vec4(s11.ss.v3.y, s11.m[3][3], field3, field4[2]); // 10.0, 5.0, 16.0, 81.0 + gl_Position = v4; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstFolding2_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstFolding2_vert.vert new file mode 100644 index 0000000000..55c1367245 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstFolding2_vert.vert @@ -0,0 +1,421 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + struct s5 { + float k; + }; + const struct s { + int i; + float j; + s5 s55; + } ss = s(4,1.0, s5(1.0)); + + + const struct s2 { + int i; + vec3 v3; + bvec4 bv4; + } s22 = s2(8, vec3(9, 10, 11), bvec4(true, false, true, false)); + + struct s4 { + int ii; + vec4 v4; + }; + + const struct s1 { + s2 ss; + int i; + float f; + mat4 m; + s4 s44; + } s11 = s1(s22, 2, 4.0, mat4(5), s4(6, vec4(7, 8, 9, 10))) ; + + + const struct s7 { + int i; + mat3 m3; + } s77 = s7(12, mat3(15)); + + vec2 v21 = vec2(1); // Not a constant + const vec2 v22 = vec2(11); // 11.0, 11.0 + const vec4 v41 = vec4(2); // 2.0, 2.0, 2.0, 2.0 + const vec4 v43 = vec4(4,4,4,4); // 4.0, 4.0, 4.0, 4.0 + const vec4 v44 = vec4(5.0, 5.0, 5.0, 5.0); // 5.0, 5.0, 5.0, 5.0 + const vec4 v45 = vec4(v22, v22); // 11.0, 11.0, 11.0, 11.0 + const vec4 v46 = vec4(vec2(20, 21), vec2(22, 23)); // 20.0, 21.0, 22.0, 23.0 + + const vec3 v31 = vec3(s22.v3); // 9.0, 10.0, 11.0 + const vec3 v32 = vec3(s77.m3); // 15.0, 0, 0 + const vec3 v33 = vec3(s77.m3[2]); // 0, 0, 15.0 + const vec3 v34 = vec3(s77.m3[2][0]); // 0,0,0 + + + const mat4 m41 = mat4(1); // 1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1 + const mat4 m42 = mat4(v44, v44, v44, v44); // all 5s + const mat4 m43 = mat4( v43.x); // 4,0,0,0,0,4,0,0,0,0,0,4,0,0,0,0,0,4 + + const vec4 v47 = vec4(m41[0][0]); // 1.0,1.0,1.0,1.0 + + const mat4 m45 = mat4(s22.v3, v44, v45, v32, 50, 52); //9,10,11,5,5,5,5,11,11,11,11,15.0, 0,0, 50.0, 52.0 + //const mat3 m31 = mat3(1, mat2(1), 2.0, vec3(1)); // 1.0, 1,0,0,1,2,1,1,1 + const vec4 v48 = vec4(v31[0], v22[1], v41[0], v43[3]); //9, 11, 2, 4 + const vec4 v49 = vec4(s22.v3.xy, s22.v3.zx); // 9,10,11,9 + const vec4 v410 = vec4(v44.xy, v43.zx); //5,5,4,4 + + const vec4 v411 = vec4(m42[3]); // 5,5,5,5 + const vec4 v412 = vec4(m43[2]); // 0,0,4,0 + + const vec2 v23 = vec2(m41); // 1,0 + + const vec2 v24 = vec2(33, s11.i); // 33, 2 + + const vec4 v413 = vec4(vec2(1.0,2.0),ivec2(3.0,4.0)); // 1,2,3,4 + const ivec4 i41 = ivec4(1.0, 2.0, 3.0, 4.0); // 1,2,3,4 + + const ivec4 i42 = ivec4(6); // 6,6,6,6 + const ivec4 i43 = ivec4(v45); //11,11,11,11 + + const ivec4 i44 = ivec4(v44[0]); // 5,5,5,5 + const ivec4 i45 = ivec4(vec2(20, 21), vec2(22, 23)); // 20, 21, 22, 23 + const vec4 v414 = vec4(ivec2(29, 30), ivec2(31, 32)); // 29.0, 30.0, 31.0, 32.0 + const ivec4 i46 = ivec4(ivec2(2.0,3.0), ivec3(4.0,5.0,6.0)); + const ivec4 i47 = ivec4(i46); // 2,3,4,5 + const ivec4 i48 = ivec4(v414.x); // 29,29,29,29 + + const ivec4 i49 = ivec4(vec4(1)); // 1,1,1,1 + const ivec4 i414 = ivec4(mat4(14)); // 14, 0,0,0, + const ivec4 i410 = ivec4(m43); // 4,0,0,0 + const ivec4 i411 = ivec4(m43[1]); // 0, 4, 0, 0 + const ivec4 i412 = ivec4(s77.i); // 12, 12, 12, 12 + const ivec4 i416 = ivec4(s22.v3.zyx, 12); // 11, 10, 9, 12 + + const vec4 v415 = vec4(ivec2(35), ivec2(36)); // 35.0, 35.0 ,36.0 , 36.0 + + const bvec4 b41 = bvec4(1.0, 2.0, 3.0, 4.0); // true,true,true,true + + const bvec4 b42 = bvec4(6); // true,true,true,true + const bvec4 b43 = bvec4(v45); //true,true,true,true + + const bvec4 b44 = bvec4(v44[0]); // true,true,true,true + const bvec4 b45 = bvec4(vec2(0, 21), vec2(0, 1)); // false, true, false, true + const bvec4 b46 = bvec4(ivec2(0.0,3.0), ivec3(0,5.0,6.0)); // false, true, false, true + const bvec4 b47 = bvec4(i46); // true,true,true,true + const bvec4 b48 = bvec4(v414.x); // true,true,true,true + + const bvec4 b49 = bvec4(vec4(0)); // false,false,false,false + const bvec4 b414 = bvec4(mat4(14)); // true, false,false,false, + const bvec4 b410 = bvec4(m43); // true,false,false,false + const bvec4 b411 = bvec4(m43[1]); // false, true, false, false + const bvec4 b412 = bvec4(s77.i) ; // true, true, true, true + + const vec3 v35 = vec3(s11.s44.v4); // 7.0,8.0,9.0 + + + struct s10 { + int k; + }; + struct s9 { + float f; + s10 s101; + }; + const struct s8 { + int i; + s9 s99; + } s88 = s8(1, s9(2.0, s10(5))); + + struct st4 { + int m; + vec3 v3; + }; + struct st3 { + int k; + int l; + st4 st44; + }; + struct st2 { + float f; + st3 st33; + }; + const struct st1 { + int i; + st2 st22; + } st11 = st1(1, st2(2.0, st3(5, 6, st4(7, v35)))); + + const vec4 v416 = vec4(s88.s99.s101.k); // all 5s + const vec4 v417 = vec4(st11.st22.st33.st44.v3, s88.s99.s101.k); // 7.0, 8.0, 9.0, 5.0 + const vec3 v36 = vec3(s11.ss.v3); // 9, 10, 11 + + vec4 v418 = v416; // all 5s + const float f1 = v416[0]; // 5.0 + vec4 v419; + v419.xyz = st11.st22.st33.st44.v3; + mat4 m47; + + struct struct2 { + int k; + } struct22 = struct2(4); + + const struct struct1 { + struct2 sst2; + } struct11 = struct1(struct2(2)); + + const vec4 v420 = v417; // 7.0, 8.0, 9.0 , 5.0 + + vec4 v421 = vec4(s11.m); // 5, 0, 0, 0 + vec4 v422 = v420; // 7.0, 8.0, 9.0 , 5.0 + + vec4 v423 = s11.s44.v4; // 7, 8, 9, 10 + + int int1 = ss.i * ss.i; // 16 + int int2 = ss.i * 2; // 8 + + const vec4 v425 = v420 * v420; // 49, 64, 81, 25 + const vec4 v426 = s11.m * s11.s44.v4; // 35, 40, 45, 50 + const vec4 v427 = s11.s44.v4 * s11.m; // 35, 40, 45, 50 + + float ff = 2.0; + const float ffConst = 2.0; + + vec4 v428 = ff + v425; // ordinary assignment with binary node + vec3 v39 = vec3(5); + + vec3 v310 = s22.v3 + v39; //14, 15, 16 + + const vec4 v429 = v420 + v420; // 14, 16, 18, 10 + const vec4 v430 = v420 + ffConst; // 9, 10, 11,7 + const vec4 v432 = v429 + s11.f; // 18, 20, 22, 14 + + const vec4 v433 = vec4(s11.f + s11.f); // all 8s + const vec4 v434 = v432 + vec4(3); // 21, 23, 25, 17 + const mat4 m48 = s11.m + ffConst; // diagonal 7s and others 2s + const mat4 m49 = mat4(ffConst + s11.f); // diagonal 6s + const mat4 m410 = m48 + s11.f; // diagonal 11, others - 6s + + const mat4 m413 = m48 + m48 ; // diagonal 14, others 4 + const mat4 m414 = m413 + ffConst ; // diagonal 16, others 6 + + const vec4 v435 = ffConst + v420; // 9, 10, 11,7 + const vec4 v436 = s11.f + v429; // 18, 20, 22, 14 + const mat4 m415 = ffConst + s11.m; // diagonal 7s and others 2s + const mat4 m416 = s11.f + m48 ; // diagonal 11, others - 6s + const mat4 m417 = ffConst + m413 ; // diagonal 16, others 6 + + const vec4 v437 = v420 - v420; // 0, 0, 0, 0 + const vec4 v438 = v420 - ffConst; // 5, 6, 7,3 + const vec4 v440 = v429 - s11.f; // 10, 12, 14, 6 + + const vec4 v441 = vec4(s11.f - s11.f); // all 0s + const vec4 v442 = v432 - vec4(3); // 15, 17, 19, 11 + const mat4 m418 = s11.m - ffConst; // diagonal 3s and others -2s + const mat4 m419 = mat4(ffConst - s11.f); // diagonal -> -2s + const mat4 m420 = m48 - s11.f; // diagonal 3, others -> -2 + + const mat4 m423 = m48 - m48 ; // All 0s + const mat4 m424 = m413 - ffConst ; // diagonal 12, others 2 + + const vec4 v443 = ffConst - v420; // -5, -6, -7,-3 + const vec4 v444 = s11.f - v429; // -10, -12, -14, -6 + const mat4 m425 = ffConst - s11.m; // diagonal -3s and others 2s + const mat4 m426 = s11.f - m48 ; // diagonal -3, others 2s + const mat4 m427 = ffConst - m413 ; // diagonal -12, others -2 + + const vec4 v445 = v420 * v420; // 49, 64, 81, 25 + const vec4 v446 = v420 * ffConst; // 14, 16, 18,10 + const vec4 v448 = v429 * s11.f; // 56, 46, 72, 40 + + const vec4 v449 = vec4(s11.f * s11.f); // all 16 + const vec4 v450 = v432 * vec4(3); // 54, 60, 66, 42 + const mat4 m428 = s11.m * ffConst; // diagonal 10 and others 0s + const mat4 m429 = mat4(ffConst * s11.f); // diagonal 8 + const mat4 m430 = m48 * s11.f; // diagonal 28, others 8 + + const mat4 m433 = m48 * m48 ; // diagonal 61, others 36 + const mat4 m434 = m413 * ffConst ; // diagonal 28, others 8 + + const vec4 v451 = ffConst * v420; // 14, 16, 18,10 + const vec4 v452 = s11.f * v429; // 56, 64, 72, 40 + const mat4 m435 = ffConst * s11.m; // diagonal 10 and others 0s + const mat4 m436 = s11.f * m48 ; // diagonal 28, others - 8s + const mat4 m437 = ffConst * m413 ; // diagonal 28, others 8 + + const vec4 v453 = v420 / v420; // 1, 1, 1, 1 + const vec4 v454 = v420 / ffConst; // 3.5, 4, 4.5,2.5 + + const vec4 v457 = vec4(s11.f / s11.f); // all 1s + const vec4 v458 = v432 / vec4(3); // 6, 6.6666, 7.333, 4.6666 + const mat4 m438 = s11.m / ffConst; // diagonal 2.5 and others 0s + const mat4 m439 = mat4(ffConst / s11.f); // diagonal 0.5s + const mat4 m440 = m48 / s11.f; // diagonal 1.75, others 0.5s + + const mat4 m443 = m48 / m48 ; // All 1s + const mat4 m444 = m413 / ffConst ; // diagonal 7, others 2 + + const vec4 v459 = ffConst / v420; // .2857 , .25, .22, .4 + const vec4 v460 = s11.f / v429; // .2857, .25, .22, .4 + //const mat4 m445 = ffConst / s11.m; // divide by zero error + const mat4 m446 = s11.f / m48 ; // diagonal .571, others 2 + const mat4 m447 = ffConst / m413 ; // diagonal .1428, others 0.5 + + const vec4 v461 = v453 * m428; // 10, 10, 10, 10 + const vec4 v462 = v453 * m437; // 52, 52, 52, 52 + const vec4 v463 = m428 * v451; // 140, 160, 180, 100 + const vec4 v464 = m437 * v451; // 744, 784, 824, 664 + + int ii = 2; + const int iiConst = 2; + + const ivec4 i420 = ivec4( 7,8,9,5); // 7, 8, 9, 5 + + const ivec4 i429 = i420 + i420; // 14, 16, 18, 10 + const ivec4 i430 = i420 + iiConst; // 9, 10, 11,7 + const ivec4 i432 = i429 + ss.i; // 18, 20, 22, 14 + + const ivec4 i433 = ivec4(ss.i + ss.i); // all 8s + + const ivec4 i435 = iiConst + i420; // 9, 10, 11,7 + const ivec4 i436 = ss.i + i429; // 18, 20, 22, 14 + + const ivec4 i437 = i420 - i420; // 0, 0, 0, 0 + const ivec4 i438 = i420 - iiConst; // 5, 6, 7,3 + const ivec4 i440 = i429 - ss.i; // 10, 12, 14, 6 + + const ivec4 i441 = ivec4(ss.i - ss.i); // all 0s + + const ivec4 i443 = iiConst - i420; // -5, -6, -7,-3 + const ivec4 i444 = ss.i - i429; // -10, -12, -14, -6 + + const ivec4 i445 = i420 * i420; // 49, 64, 81, 25 + const ivec4 i446 = i420 * iiConst; // 14, 16, 18,10 + const ivec4 i448 = i429 * ss.i; // 56, 64, 72, 40 + + const ivec4 i449 = ivec4(ss.i * ss.i); // all 16 + + const ivec4 i451 = iiConst * i420; // 14, 16, 18,10 + const ivec4 i452 = ss.i * i429; // 56, 64, 72, 40 + + const ivec4 i453 = i420 / i420; // 1, 1, 1, 1 + const ivec4 i454 = i420 / iiConst; // 3, 4, 4,2 + const ivec4 i456 = i429 / ss.i; // 3, 4, 4, 2 + + const ivec4 i457 = ivec4(ss.i / ss.i); // all 1s + + const ivec4 i459 = iiConst / i420; // 0 , 0, 0,0 + const ivec4 i460 = ss.i / i429; // 0, 0, 0,0 + + const bvec4 b424 = bvec4(s22.bv4); + + const bool b1 = s22.bv4 == b424; // true + const bool b2 = i420 == i420; // true + const bool b3 = i420 == i445; // false + const bool b4 = v420 == v420; // true + const bool b5 = m430 == m434; // true + + const vec4 v465 = -v420; // -7, -8, -9, -5 + const mat4 m448 = -m447 ; // diagonal -.1428, others -0.5 + const ivec4 i465 = -i456 ; // -3, -4, -4,-2 + + const bool b7 = s22 == s22; + + const vec4 v466 = v432 + vec4(3,4,5,6); // 21, 24, 27, 20 + const vec4 v467 = v432 + vec4(vec2(3,4),5,6); // 21, 24, 27, 20 + const vec4 v468 = v432 + vec4(3, vec2(4, 5),vec2(6,7)); // 21, 24, 27, 20 + const vec4 v469 = vec4(v468) + vec4(3) + v468 + vec4(s77.m3[2][0]); // 45, 51, 57, 43 + + const bool b8 = ss == ss; // true + + struct st6 { + vec3 v; + }; + + struct st5 { + int i; + float f; + st6 st66; + } st55; + + const st5 st551 = st5(2, 4.0, st6(vec3(7))); + const st5 st552 = st5(2, 4.0, st6(vec3(7))); + + const bool b10 = st551 == st552; // true + + const bool b11 = st551.st66 == st552.st66; // true + + const st5 st553 = st5(2, 4.0, st6(vec3(8))); + + const bool b12 = st551.st66 == st553.st66; // false + const bool b13 = st551 == st553; // false + + const bool b14 = st551 != st552; // false + const bool b15 = st551.st66 != st552.st66; // false + const bool b16 = st551.st66 != st553.st66; // true + const bool b17 = st551 != st553; // true + + const bool b18 = s22.bv4 != b424; // false + const bool b19 = i420 != i420; // false + const bool b20 = i420 != i445; // true + const bool b21 = v420 != v420; // false + const bool b22 = m430 != m434; // false + + const int int10 = i420.xy.y; // 8 + + //float f = v470.x; + + + + const int int13 = -ss.i; + + const vec4 v474 = -vec4(0.5); + + int int14 = ii++; + int array[3]; + array[2]; + + const vec4 v478 = v466 * 2.0; // 42, 48, 54, 40 + + const vec4 v479 = iiConst > 1 ? v466 : v478; // 21, 24, 27, 20 + + const struct st7 { + int i; + bool b; + } st77 = st7(ss.i, true); + + const vec4 v481 = vec4(st77.i); + + const struct st8 { + int i; + } ; + + + const struct st9 { + s2 ss; + } st99 = st9(s22); + + const vec3 v312 = st99.ss.v3; // 9, 10, 11 + const vec4 v482 = mat4(1)[0]; // 1, 0, 0 , 0 + + const mat4 m450 = mat4(ss.i); // mat4(4) + const mat4 m451 = mat4(b20); // mat4(1) + const mat4 m452 = mat4(st77.b); // mat4(1) + + const vec4 v483 = vec4(vec4(3).x); // 3,3,3,3 + const mat4 m453 = mat4(vec4(5).x); // mat5(5) + + const vec4 v484 = vec4(mat4(6)[1]); // 0,6,0,0 + const mat4 m454 = mat4(mat4(6)[1][1]); // mat4(6) + + const vec4 v485 = vec4(st7(8, true).b); // 1,1,1,1 + + const vec4 v487 = vec4(vec4(12, 13, 14, 15).ab, 12, 14); + + int i20 = ss.i; + const vec4 v489 = -vec4(7,8,9,5); // -7, -8, -9, -5 + + gl_Position = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstruct_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstruct_vert.vert new file mode 100644 index 0000000000..e8d9b378e5 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectConstruct_vert.vert @@ -0,0 +1,37 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +struct s { + float f; +} s1 = s(1.0); + +struct s3 { + int i; +} s3Inst; + +struct s2 { + float f; + s3 s3Inst; +} s2Inst = s2(1.0, s3(1)); + +void main() +{ + vec3 i = vec3(5.0, 4.0, ivec2(2.0, 1.0)); + ivec4 v2 = ivec4(1.0); + vec4 v4 = vec4(v2); + bvec4 v5 = bvec4(v2); + vec3 v6 = vec3(v5); + vec3 v = vec3(2, 2.0, 1); + vec3 v1 = vec3(1.2, v); + + mat3 m1 = mat3(v,v,v); + mat2 m2 = mat2(v, v6.x); + + gl_Position = vec4(1.0); +} + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension10_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension10_V100_frag.frag new file mode 100644 index 0000000000..9f7eb6a022 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension10_V100_frag.frag @@ -0,0 +1,26 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#version 100 +#extension extensionfoo : enable // warning extension not supported +#extension extensionfoo : disable // warning extension not supported +#extension extensionfoo : warn // warning extension not supported + +#extension all : disable // no error in the program +#extension all : warn // no error in the program + +#extension extensionfoo : enable // warning extension not supported +#extension extensionfoo : disable // warning extension not supported +#extension extensionfoo : warn // warning extension not supported +#ifdef GL_ES +precision mediump float; +#endif + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension1_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension1_V100_frag.frag new file mode 100644 index 0000000000..34d497d433 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension1_V100_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#extension all : disable // no error in the program +#extension all : warn // no error in the program +#ifdef GL_ES +precision mediump float; +#endif + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension4_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension4_V100_frag.frag new file mode 100644 index 0000000000..e013e85f89 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectExtension4_V100_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#extension extensionfoo : enable // warning extension not supported +#extension extensionfoo : disable // warning extension not supported +#extension extensionfoo : warn // warning extension not supported +#ifdef GL_ES +precision mediump float; +#endif + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFull_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFull_vert.vert new file mode 100644 index 0000000000..30f14ad27b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFull_vert.vert @@ -0,0 +1,654 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +struct gtf_MaterialParameters +{ +vec4 emission; +vec4 ambient; +vec4 diffuse; +vec4 specular; +float shininess; +}; +struct gtf_LightSourceParameters +{ +vec4 ambient; +vec4 diffuse; +vec4 specular; +vec4 position; +vec4 halfVector; +vec3 spotDirection; +float spotExponent; +float spotCutoff; +float spotCosCutoff; +float constantAttenuation; +float linearAttenuation; +float quadraticAttenuation; +}; +struct gtf_PointParameters { +float size; +float sizeMin; +float sizeMax; +float fadeThresholdSize; +float distanceConstantAttenuation; +float distanceLinearAttenuation; +float distanceQuadraticAttenuation; +}; +struct gtf_DepthRangeParameters { +float near; +float far; +float diff; +}; +struct gtf_LightModelParameters { +vec4 ambient; +}; +struct gtf_LightModelProducts { +vec4 sceneColor; +}; +struct gtf_LightProducts { +vec4 ambient; +vec4 diffuse; +vec4 specular; +}; +struct gtf_FogParameters { +vec4 color; +float density; +float start; +float end; +float scale; +}; +uniform int gtf_MaxFragmentUniformComponents; +uniform int gtf_MaxVertexUniformComponents; +uniform int gtf_MaxVertexTextureImageUnits; +uniform int gtf_MaxLights; +uniform int gtf_MaxClipPlanes; +uniform int gtf_MaxCombinedTextureImageUnits; +uniform int gtf_MaxTextureCoords; +uniform int gtf_MaxVertexAttribs; +uniform int gtf_MaxVaryingFloats; +uniform int gtf_MaxTextureUnits; +uniform int gtf_MaxDrawBuffers; +uniform int gtf_MaxTextureImageUnits; +uniform gtf_LightProducts gtf_FrontLightProduct[8]; +uniform gtf_LightModelProducts gtf_FrontLightModelProduct; +uniform gtf_DepthRangeParameters gtf_DepthRange; +uniform gtf_FogParameters gtf_Fog; +uniform gtf_PointParameters gtf_Point; +uniform gtf_LightModelParameters gtf_LightModel; +varying vec4 gtf_FogFragCoord; +varying vec4 gtf_BackColor; +varying vec4 gtf_BackSecondaryColor; +varying vec4 gtf_FrontSecondaryColor; +varying vec4 gtf_TexCoord[2]; +varying vec4 gtf_FrontColor; +uniform gtf_MaterialParameters gtf_FrontMaterial; +uniform gtf_LightSourceParameters gtf_LightSource[8]; +attribute vec4 gtf_MultiTexCoord1; +attribute vec4 gtf_MultiTexCoord2; +attribute vec4 gtf_SecondaryColor; +attribute vec4 gtf_Color; +attribute vec4 gtf_MultiTexCoord3; +attribute vec4 gtf_MultiTexCoord0; +attribute vec4 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_NormalMatrix; +uniform mat4 gtf_ProjectionMatrix; +uniform mat4 gtf_TextureMatrix[8]; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; +void test_function(const in int in_int, inout int out_int); +int test_function1(in int in_int1, inout int in_out_int); + +uniform float array_float[2]; + +struct nested +{ + int a; + float f; +}; + +struct light1 +{ + float intensity; + vec3 position; + int test_int[2]; + nested light2; +} lightVar; +light1 ll2; + +void Assign (out light1 out1, in light1 in1) +{ + out1.intensity = in1.intensity; + out1.position = in1.position; + out1.test_int[0] = in1.test_int[0]; + out1.test_int[1] = in1.test_int[1]; + out1.light2 = in1.light2; +} + +struct light3 { + float i; +}; + +struct light4 { + float i; +}; + +struct light5 { + float i ; + float a[2]; +} light5_inst; + +uniform light3 uniformLight3; + +struct light6 { + float i; +}; +uniform light6 uniformLight6; + +struct slight10{ + float f; + }; +struct slight9{ + slight10 light10; + }; +struct slight8{ + slight9 light9; + }; +struct light7 { + slight8 light8; +} ; + + +light3 struct_var = light3(5.0); + +// Attribtue variables can only be Global +attribute float flt_attrib; +attribute vec2 vec2_attrib; +attribute vec3 vec3_attrib; +attribute vec4 vec4_attrib; +attribute mat2 mat2_attrib; +attribute mat3 mat3_attrib; +attribute mat4 mat4_attrib; + +uniform float flt_uniform; +uniform vec3 uniform_vec3; +uniform mat3 uniform_mat3; + +uniform sampler2D samp[3]; +uniform sampler2D samp1; + +const struct light12 { + int a; +} uniform_struct = light12(2); + +varying vec3 varying_vec3; +varying vec2 varying_vec2; +varying vec4 varying_vec4; +varying mat4 varying_mat4; +varying mat2 varying_mat2; +varying mat3 varying_mat3; +varying float varying_flt; + +float frequencies[2]; + +void test_function2(int func_int) +{ +} + +void test_function3(light3); +void test_function4(light5 ll20); +void test_function5(light1); +light6 test_function6(int a); + +const float FloatConst1 = 3.0 * 8.0, floatConst2 = 4.0; +const bool BoolConst1 = true && true || false; +const bool BoolConst2 = false || !false && false; + +void main(void) +{ + + int test_int1 = 2; + const int const_test_int1 = 2; + + struct structMain { + float i; + } testStruct; + + struct { + structMain a; + } aStruct; + + testStruct.i = 5.0 ; + struct_var.i = 5.0; + + structMain newStruct, newStruct1; + testStruct = newStruct; + newStruct = newStruct1; + + lightVar.light2.f = 1.1; + + light1 ll1; + ll1.light2.a = 1; + + const struct const_struct { + float i; + } const_struct_inst = const_struct(1.0); + + //ll1 = ll2; + Assign (ll1, ll2); + ll1.light2 = ll2.light2; + ll1.light2 = ll1.light2; + ll1.light2.f = ll2.light2.f; + ll1.light2.f = ll1.light2.f; + + // lightVar = ll2; + // ll2 = lightVar; + Assign (lightVar, ll2); + Assign (ll2, lightVar); + + light5 ll10; + + light7 ll7[4]; + structMain newStruct2[2]; + newStruct2[0].i = 1.1; + + ll7[0].light8.light9.light10.f = 1.1; + + + bool test_bool4 = false ; + + bool test_bool5 = 1.2 > 3.0 ; + + int test_int2 = 047; + int test_int4 = 0xa8; // testing for hexadecimal numbers + + float test_float1 = 1.5; + float test_float2 = .01; + float test_float3 = 10.; + float test_float4 = 10.01; + float test_float5 = 23e+2; + float test_float6 = 23E-3; + float test_float8 = 23E2; + bool test_bool6 = BoolConst1 && ! (test_int1 != 0) && ! BoolConst1 && ! (FloatConst1 != 0.0) && (FloatConst1 != 0.0) && (test_float1 != 0.0); + + vec4 color = vec4(0.0, 1.0, 0.0, 1.0); + vec4 color2 = vec4(0.0); + + vec3 color4 = vec3(test_float8); + + ivec4 test_int_vect1 = ivec4(1.0,1.0,1.0,1.0); + ivec3 test_int_vec3 = ivec3(1, 1, 1) ; + + bvec4 test_bool_vect1 = bvec4(1., 1., 1. , 1. ); + + vec2 test_vec2 = vec2(1., 1.); + vec2 test_vec3 = vec2(1., 1); + vec4 test_vec4 = vec4(test_int_vect1); + + vec2 test_vec5 = vec2(color4); + vec3 test_vec7 = vec3(color); + vec3 test_vec8 = vec3(test_vec2, test_float4); + vec3 test_vec9 = vec3(test_float4, test_vec2); + + vec4 test_vec10 = vec4(test_vec9, 0.01); + vec4 test_vec11 = vec4(0.01, test_vec9); + + vec4 test_vec12 = vec4(test_vec2, test_vec2); + + mat2 test_mat2 = mat2(test_float3); + mat3 test_mat3 = mat3(test_float3); + mat4 test_mat4 = mat4(test_float3); + + mat2 test_mat7 = mat2(test_vec2, test_vec2); + mat2 test_mat8 = mat2(01.01, 2.01, 3.01, 4.01); + + mat3 test_mat9 = mat3(test_vec7, test_vec7, test_vec7); + mat4 test_mat10 = mat4(test_vec10, test_vec10, test_vec10, test_vec10); + test_mat10[1] = test_vec10; + + + mat2 test_mat12 = mat2(test_vec2, 0.01, 0.01); + mat2 test_mat13 = mat2(0.01, 5., test_vec2); + mat2 test_mat15 = mat2(0.1, 5., test_vec2 ); + + //mat2 test_mat16 = mat2(test_mat9); + //mat2 test_mat17 = mat2(test_mat10); + + float freq1[2]; + float freq2[25]; + + for (int i=0; i<100; i++) + { + if (test_float1 < 1.0) + { + + } + else + { + break; + } + } + + freq2[1] = 1.9 ; + const int array_index = 2; + freq2[const_test_int1] = 1.9 ; + freq2[array_index] = 1.8; + + const int const_int = 5; + + test_float1 = varying_flt; + + int out_int; + int intArray[6]; + test_function(test_int1, test_int1); + test_function(test_int1, intArray[2]); + + vec3 vv = vec3(test_function1(test_int1, out_int)); + bool bool_var = true; + int test_int6 = int(bool_var); + test_float1 = float(bool_var); + test_float1 = float(test_int6); + test_int6 = int(test_float1); + bool_var = bool(test_int6); + bool_var = bool(test_float1); + test_float1 = float(test_vec9); + + test_vec2.x = 1.2; + test_vec2.y = 1.4; + test_vec2.xy; + + + color.zy = test_vec2; + + test_vec2[1] = 1.1; + + test_mat2[0][0] = 1.1; + + test_float1 += 1.0; + test_float1 -= 1.0; + test_float1 *= 1.0; + test_float1 /= 1.0; + + test_mat12 *= test_mat13 ; + test_mat12 *= test_float1; + test_vec2 *= test_float1; + test_vec2 *= test_mat12; + test_float1++; + test_float1--; + --test_float1; + ++test_float1; + test_float1; + test_int1++; + test_int1--; + + test_vec2 = test_vec2 + test_float1; + test_vec2 = test_float1 + test_vec2; + + test_mat12 = test_mat12 * test_mat13; + test_vec2 = test_vec2 * test_vec5; + + test_vec2++; + test_mat2++; + + bool test_bool2 = test_float2 > test_float3; + + bool test_bool3 = test_int1 > test_int6 ; + + test_bool3 = test_vec2 == test_vec5; + + test_bool2 = test_bool3 && test_bool4; + test_bool2 = test_bool3 || test_bool4; + test_bool2 = test_bool3 ^^ test_bool4; + + test_bool2 = !test_bool3; + + test_bool3 = !(test_int1 > test_int6) ; + + test_float1 = test_int1 > test_int6 ? test_float2 : test_float3; + test_vec2 = test_int1 > test_int6 ? test_vec2 : test_vec5; + if(test_bool2) + test_float1++; + else + test_float1--; + + if(test_float1 > test_float2) + test_float1++; + + if( test_bool2 ) + { + int if_int; + test_float1++; + } + + if(test_bool2) + if(test_bool3) + if(test_bool3) + test_float1++; + + for(int for_int=0; for_int < 5; for_int++) + { + // do nothing as such + } + + + for(int x1=0; x1 < 10; x1++) + { + if (!test_bool2) + break; + + int for_int; + } + + for(int x2=-10; x2 < 100; x2++) + { + test_bool2 = (test_float1 > test_float2); + if (!test_bool2) + break; + } + + for(int for_int1 = 0; for_int1 < 100; for_int1++) + { + if (!test_bool2) + break; + + int for_int; + } + + for(int for_int1 = 0; for_int1 < 100; for_int1++) + { + if (!test_bool2) + continue; + + int for_int; + } + + + for(int i=0; i<100; i++) + { + if (!(test_float1 > test_float2)) + { + break; + } + + break; + continue; + } + + for(int i=0; i<100; i++) + { + if (!test_bool2) + break; + + break; + } + + for (int i=0; i<100; i++) + { + int dowhile_int; + dowhile_int = 3; + + if (!test_bool2) + break; + } + + gl_Position = vec4(2.0, 3.0, 1.0, 1.1); + gl_Position = gtf_Vertex; + + + // VERTEX SHADER BUILT-IN ATTRIBUTES + + vec4 builtInV4 = gtf_Color + gtf_SecondaryColor + gtf_Vertex + gtf_MultiTexCoord0 + gtf_MultiTexCoord1 + gtf_MultiTexCoord2 + gtf_MultiTexCoord3; + + + int builtInI = gtf_MaxLights + gtf_MaxClipPlanes + gtf_MaxTextureUnits + gtf_MaxTextureCoords + gtf_MaxVertexAttribs + gtf_MaxVertexUniformComponents + gtf_MaxVaryingFloats + gtf_MaxVertexTextureImageUnits + gtf_MaxCombinedTextureImageUnits + gtf_MaxTextureImageUnits + gtf_MaxFragmentUniformComponents + gtf_MaxDrawBuffers ; + + + mat4 builtInM4 = gtf_ModelViewMatrix + gtf_ModelViewProjectionMatrix + gtf_ProjectionMatrix; + + gtf_NormalMatrix; + + gtf_TextureMatrix[gtf_MaxTextureCoords-1]; + gtf_TextureMatrix; + + gtf_DepthRange.near ; + + test_float1 = gtf_DepthRange.near; + test_float1 = gtf_DepthRange.far; + test_float1 = gtf_DepthRange.diff; + + gtf_Point.size; + gtf_Point.sizeMin; + gtf_Point.sizeMax; + gtf_Point.fadeThresholdSize ; + gtf_Point.distanceConstantAttenuation; + gtf_Point.distanceLinearAttenuation ; + gtf_Point.distanceQuadraticAttenuation; + + gtf_MaterialParameters test; + gtf_FrontMaterial.emission; + + color = gtf_FrontMaterial.emission; + color = gtf_FrontMaterial.ambient; + color = gtf_FrontMaterial.diffuse; + color = gtf_FrontMaterial.specular; + test_float1 = gtf_FrontMaterial.shininess; + + gtf_LightSourceParameters lightSource; + + float builtInFloat1 = gtf_LightSource[0].spotExponent; + color = gtf_LightSource[0].ambient; + color = lightSource.ambient; + color = lightSource.diffuse; + color = lightSource.specular; + color = lightSource.position; + color = lightSource.halfVector; + color4 = lightSource.spotDirection; + test_float1 = lightSource.spotExponent; + test_float1 = lightSource.spotCutoff; + test_float1 = lightSource.spotCosCutoff; + test_float1 = lightSource.constantAttenuation; + test_float1 = lightSource.linearAttenuation; + test_float1 = lightSource.quadraticAttenuation; + + color = gtf_LightModel.ambient; + + gtf_LightModelParameters lightModel; + color = gtf_LightModel.ambient; + color = lightModel.ambient; + + color = gtf_FrontLightModelProduct.sceneColor ; + + gtf_LightModelProducts lightModelProd; + + color = lightModelProd.sceneColor; + color = gtf_FrontLightModelProduct.sceneColor; + + color = gtf_FrontLightProduct[0].ambient; + color = gtf_FrontLightProduct[0].ambient; + gtf_LightProducts lightProd; + + color = lightProd.ambient; + color = lightProd.diffuse; + color = lightProd.specular; + + + test_float1 = gtf_Fog.density ; + test_float1 = gtf_Fog.start ; + test_float1 = gtf_Fog.end ; + test_float1 = gtf_Fog.scale ; + color = gtf_Fog.color ; + + gtf_FrontColor = vec4(1.0, 1.0, 1.0, 1.0); + gtf_BackColor = vec4(1.0, 1.0, 1.0, 1.0); + gtf_FrontSecondaryColor = vec4(1.0, 1.0, 1.0, 1.0); + gtf_BackSecondaryColor = vec4(1.0, 1.0, 1.0, 1.0); + + + // VARYING VARIABLES AVAILABLE IN FRAGMENT AND VERTEX SHADERS BOTH + gtf_TexCoord[0] = vec4(1.0, 1.0, 1.0, 1.0); + gtf_FogFragCoord = vec4(1.0, 1.0, 1.0, 1.0); + +} + +void test_function(const in int in_int, inout int out_int) +{ + out_int = 5; + int i = 5; + return ; +} + +int test_function1(in int in_int1, inout int in_out_int) +{ + float ff; + in_int1 = 5; + return in_int1; +} + +void test_function3(light3 ll) +{ + ll.i = 5.0; + varying_flt = 1.2; +} + +void test_function4(light5 ll20) +{ + ll20.i = 10.0; +} + +void test_function5(light1 struct_light1) +{ + struct_light1.light2.a = 1; + light5 ll5; + struct_light1.light2.f = ll5.i; + struct_light1.light2.f++; + struct_light1.light2.a++; +} + +light6 test_function6(int a) +{ + int x; + light6 funcStruct; + light7 funcStruct1; + -x; + x = x - x ; + mat2 m; + m++; + -m; + (m)++; + return funcStruct; +} + +float test_function7(light1 ll1, int light1 ) +{ + float f; + + struct ss1 { + int a; + }; + + return float(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFuncOverload_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFuncOverload_frag.frag new file mode 100644 index 0000000000..58e9a9554b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFuncOverload_frag.frag @@ -0,0 +1,27 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void testVoid (vec4 v, vec4 v1) +{ +} + +void testVoid (ivec4 v, ivec4 v1) +{ +} + +void main(void) +{ + vec4 v; + ivec4 i; + testVoid(i, i); + testVoid(v, v); + gl_FragColor = v; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFuncOverload_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFuncOverload_vert.vert new file mode 100644 index 0000000000..752f7e607b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFuncOverload_vert.vert @@ -0,0 +1,37 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +struct S2 +{ + float f; +}; + +struct S1 +{ + float f; + S2 s2; +}; + +float process(S1 s1); +float process(S2 s2); + +void main() +{ + S1 s1 = S1(1.0, S2(1.0)); + gl_Position = vec4(process(s1)); +} + +float process(S1 s1) +{ + return s1.f + process(s1.s2); +} + +float process(S2 s2) +{ + return s2.f; +} \ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFunction1_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFunction1_vert.vert new file mode 100644 index 0000000000..f384cc57b4 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectFunction1_vert.vert @@ -0,0 +1,36 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +vec3 bar(vec3, vec3); + +uniform vec2 v; + +bool foo(out vec3); + +void main() +{ + bool b1, b2, b3, b4, b5, b6; + + b1 = any(lessThan(v, v)); + + b2 = all(lessThanEqual(v, v)); + + b3 = any(not(greaterThan(v, v))); + + b4 = any(greaterThanEqual(v, v)); + + b5 = any(notEqual(v, v)); + + b6 = any(equal(v, v)); + + vec2 u; + if (b1 && b2 && b3 && b4 && b5 && b6) + u = v; + + gl_Position = vec4(u, u); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectModule_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectModule_frag.frag new file mode 100644 index 0000000000..d3bc69815f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectModule_frag.frag @@ -0,0 +1,64 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +vec4 test_function4(float); +vec4 test_function1(float); +vec4 test_function2(float); +vec4 test_function3(float); +float f = 2.6; + + +vec4 test_function1(float ff) +{ + vec4 func_vec4 = vec4(ff+f); + return func_vec4; +} + +float f1 = 1.5; + +vec4 test_function4(float ff) +{ + vec4 func_vec4 = vec4(f1); + return func_vec4; +} + +float f2 = 3.5; + +void main() +{ + vec4 v1 = test_function4(f2); + vec4 v2 = test_function1(f2); + vec4 v3 = test_function2(f2); + vec4 v4 = test_function3(f2); + + if (f1 > f2) { + gl_FragColor = v1 + v2 + v3 + v4; + } else + gl_FragColor = v1 + v2 + v3 + v4; +} + +float f4 = 5.5; +vec4 test_function3(float ff) +{ + if (ff > f4) + return vec4(ff); + else + return vec4(f4); +} + +float f3 = 4.5; +vec4 test_function2(float ff) +{ + vec4 func_vec4 = vec4(ff+f3); + return func_vec4; +} + +float f5 = 6.5; diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse1_frag.frag new file mode 100644 index 0000000000..65a9fb07fb --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse1_frag.frag @@ -0,0 +1,51 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform vec3 a[8]; + +uniform bool ub; +varying mat4 vm; + +int foo(float); + +float bar(int i) +{ + return float(i); +} + +void main (void) +{ + const int x = 3; + mat4 a[4]; + vec4 v; + + for (float f = 0.0; f != 3.0; ++f) + { + } + + vec3 v3[x + x]; + + int vi = foo(2.3); + + vec3 v3_1 = v3[x]; + + float f1 = a[x][2].z * float(x); + f1 = a[x][2][2] * float(x); + f1 = v[2] * v[1]; + + const int ci = 2; + +} + +int foo(float f) +{ + return 2; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse2_frag.frag new file mode 100644 index 0000000000..6bfe2ec57a --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse2_frag.frag @@ -0,0 +1,136 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +const float FloatConst1 = 3.0 * 8.0, floatConst2 = 4.0; +const bool BoolConst1 = true && true || false; +const bool BoolConst2 = false || !false && false; + +void main (void) +{ + float float1 = 4.0, float2 = floatConst2; + int int_1 = int(FloatConst1); + vec4 vec4_1; + vec3 vec3_1; +// unsigned int unsigned_int_1; + bool bool4, bool5; + + bool4 = bool5; + //float1 = bool5; + //bool5 = float1; + + bool4 = 4.0 > 5.0; + bool4 = !(3.2 != 0.0); + bool4 = bool(float1); + bool4 = bool(int_1); + float1 = float(bool4); + float1 = float(int_1); + int_1 = int(float1); + int_1 = int(bool4); + + { + int a, b, c; + + a = b; + b = c; + { + int b, c, d; + + b = c; + c = d; + { + int a, d, e; + + a = d; + d = e; + } + { + int a, b, c; + a = b; + b = c; + } + } + a = b; + b = c; + } + + { + float f1, f2; + vec3 v31, v32; + + max(f1, f2); + max(v31, v32); + + vec4 v4 = vec4(3.0); + vec3 v3 = -vec3(2.0, 1.0, 3.0); + mat2 m2 = mat2(3.0, 4.0, 6.0, 3.0); + //mat4 m4 = mat4(1.0, m2, v3, v4, m2); + } + + if (BoolConst1) + ++vec3_1; + else + --vec3_1; + + if (BoolConst2) + ++vec3_1; + else + --vec3_1; + + if (BoolConst1 || BoolConst2) + ++vec3_1; + else + --vec3_1; + + if (BoolConst2 && BoolConst1) + ++vec3_1; + else + --vec3_1; + + if (FloatConst1 != 0.0) + --int_1; + else + ++int_1; + + if (0 != 0) + ++int_1; + else + --int_1; + + bool4 = BoolConst1 && ! (int_1 != 0) && ! BoolConst1 && ! (FloatConst1 != 0.0) && (FloatConst1 != 0.0) && (float1 != 0.0); + + float1 = 5 != 0 ? float1 : float(int_1); + float1 = 0 != 0 ? float1 : float(int_1); + + if (float1 != float1) + ++int_1; + else + --int_1; + + float1 = float1 != float1 ? float1 : float(int_1); + + --int_1; + ++float1; + (vec4_1.x)--; + vec3_1++; + + if (int_1 != 4) + discard; + + float1 = 4.0 + 6.0; + int ii,jj,kk; + float ff; + ii = jj, kk, ff; + + vec4_1 = vec4_1 + 2.0; + ivec4 iv; + iv = iv + 2; + gl_FragColor = vec4(float1+float1, float1, float1, float(int_1)); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse2_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse2_vert.vert new file mode 100644 index 0000000000..d2686442a9 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParse2_vert.vert @@ -0,0 +1,149 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +const float FloatConst1 = 3.0 * 8.0, floatConst2 = 4.0; +const bool BoolConst1 = true && true || false; +const bool BoolConst2 = false || !false && false; + +void main (void) +{ + float float1 = 4.0, float2 = floatConst2; + int int_1 = int(FloatConst1); + vec4 vec4_1; + vec3 vec3_1 = vec3(1, 1, 1); + vec3 vec3_2 = vec3(0, 0, 0); +// unsigned int unsigned_int_1; + bool bool4, bool5; + + bool4 = bool5; + //float1 = bool5; + //bool5 = float1; + + bool4 = 4 > 5; + bool4 = !(3.2 != 0.0); + bool4 = bool(float1); + bool4 = bool(int_1); + float1 = float(bool4); + float1 = float(int_1); + int_1 = int(float1); + int_1 = int(bool4); + + { + int a, b, c; + + a = b; + b = c; + { + int b, c, d; + + b = c; + c = d; + { + int a, d, e; + + a = d; + d = e; + } + { + int a, b, c; + a = b; + b = c; + } + } + a = b; + b = c; + } + + { + float f1, f2; + vec3 v31, v32; + + max(f1, f2); + max(v31, v32); + + vec4 v4 = vec4(3.0); + vec3 v3 = -vec3(2.0, 1.0, 3.0); + mat2 m2 = mat2(3.0, 4.0, 6.0, 3.0); + //mat4 m4 = mat4(1.0, m2, v3, v4, m2); + } + + if (BoolConst1) + ++vec3_1; + else + --vec3_1; + + if (BoolConst2) + ++vec3_1; + else + --vec3_1; + + if (BoolConst1 || BoolConst2) + ++vec3_1; + else + --vec3_1; + + if (BoolConst2 && BoolConst1) + ++vec3_1; + else + --vec3_1; + + if (FloatConst1 != 0.0) + --int_1; + else + ++int_1; + + if (0 != 0) + ++int_1; + else + --int_1; + + bool4 = BoolConst1 && ! (int_1 != 0) && ! BoolConst1 && ! (FloatConst1 != 0.0) && (FloatConst1 != 0.0) && (float1 != 0.0); + + float1 = 5 != 0 ? float1 : float(int_1); + float1 = BoolConst1 ? float1 : float(int_1); + + if (float1 != float1) + ++int_1; + else + --int_1; + + float1 = float1 != float1 ? float1 : float(int_1); + + --int_1; + ++float1; + (vec4_1.x)--; + vec3_1++; + + if (vec3_1.x > vec3_2.x) + float1 = 4.0 + 6.0; + + if (bool4 ^^ bool5) + float1 *= 2.4; + + if (false ^^ false) + float1 *= 2.5; + + if (true ^^ false) + float1 *= 2.6; + + { + int i; + } + + if (bool4) { + int i; + } else { + int i; + i = 5; + } + + mat4 m1; + m1[2][1] = 4.0; + + gl_Position = vec4(float1+float1, float1, float1, float(int_1)); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParseTest1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParseTest1_frag.frag new file mode 100644 index 0000000000..05c106103b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParseTest1_frag.frag @@ -0,0 +1,23 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct s { + vec4 v; +} s2; + +void main() +{ + s s1 = s(vec4(ivec4(4.0, vec2(5,6), 7.0))); + vec4 v = vec4(2,ivec2(3.0, 4.0), 5.0); + vec4 v4 = vec4(ivec4(8.0)); + + gl_FragColor = v4 + v + s1.v; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParseTest_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParseTest_frag.frag new file mode 100644 index 0000000000..46b6ddc601 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectParseTest_frag.frag @@ -0,0 +1,26 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct s{ + float f; + vec3 v; +} s1 ; +void main() +{ + vec4 v = vec4(float(vec2(1,2)), 5,6,7); // 1, 5, 6, 7 + vec4 v1 = vec4(3, vec2(ivec2(1,2)), 4); // 3, 1, 2, 4 + vec4 v2 = vec4(8, 9, vec4(ivec4(1,2,3,4))); // 8,9, 1,2 + vec2 v3 = vec2(v2); // 8,9 + vec4 v4 = vec4(v3, v2.z, v2.w); // 8,9,1,2 + + const vec4 v5 = vec4(2.0, s(2.0, vec3(3,4,5)).v); // 2,3,4,5 + gl_FragColor = v5 + v + v1 + v4 ; // 14, 18, 13, 18 +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess5_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess5_frag.frag new file mode 100644 index 0000000000..1dbac1a011 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess5_frag.frag @@ -0,0 +1,31 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +//mutiple line macros - test case. + +#define test 5 +#define t1 1 +#define t2 2 +#define token (t1+t2) +#define test1 int sum =1; sum = test; sum = test+test; + +#define test2 { test1 sum = sum +token; sum = t2*t1; } + +void main(void) +{ + int test3=1; + test1 + test2; + test3 = test; + sum = test3; +} + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess8_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess8_frag.frag new file mode 100644 index 0000000000..01a3466e9a --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess8_frag.frag @@ -0,0 +1,115 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +// Extensive testing on #if #else #elif #ifdef, #ifndef and #endif. + + +#define t1 1 + +#if(t1==1) + #define t2 2 +#endif + +#if (t2!=2) + #define t3 33 +#else + #define t3 3 +#endif + +#if (t3!=3) + #define t4 4 +#elif (t3==3) + #define t4 44 +#else + #define t4 0 +#endif + +#if defined(t5) + #define t6 6 +#elif (t3!=3) + #define t5 5 +#elif (t3==3) + #define t5 5 +#endif + +#ifdef t5 + #define t6 6 +#else + #define t7 7 +#endif + +#ifndef t8 + #define t8 8 +#endif + +#if defined t8 + #define t9 + #ifdef t9 + #define t10 10 + #endif +#elif + #define t11 11 +#endif + +#ifndef t8 + #define t12 12 +#else + #define t12 12 + #ifndef t13 + #define t13 13 + #endif + #ifdef t14 + #define t15 15 + #else + #if defined t8 + #define t16 16 + #endif + #endif +#endif + +#ifdef t1 + #ifdef t10 + #if defined t8 + #if defined(t3) + #ifndef t20 + #define t25 25 + #endif + #else + #define t15 15 + #define t24 24 + #endif + #endif + #endif +#else + #ifdef t21 + #define t22 22 + #else + #define t23 23 + #endif +#endif +#define t7 7 +#define t11 11 +#define t14 14 +#define t15 15 +#define t20 20 +#define t22 22 +#define t23 23 +#define t24 42 + +void main(void) +{ + int sum =0; + sum = t1+t2+t3+t4+t5; + sum = t6+t7+t8+t9+t10; + sum = t11+t12+t13+t14+t15; + sum = t16+t20+t22+t23+t25+t24; +} + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess9_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess9_frag.frag new file mode 100644 index 0000000000..4946312934 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectPreprocess9_frag.frag @@ -0,0 +1,32 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +#define t1 2.3333333333333333 +#define t2 (0.978293600-1.0) +#define t3 .9090909090 +#define t4 26578235.000000083487 +#define t5 78e-03 +#define t6 78.100005E+05 +#define t7 6278.78e-5 + +void main(void){ + float tes=2e-3; + float test=3.2e-5; + float test1=0.99995500; + float test2=6789.983; + + test = t1+t2; + test = t3-t4; + tes = t5 * t6; + test2 = t7; + + gl_FragColor = vec4(test, tes, test1, test2); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle1_frag.frag new file mode 100644 index 0000000000..9226f186c1 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle1_frag.frag @@ -0,0 +1,24 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec2 v = vec2(1,5); + // at the end of next statement, values in + // v.x = 12, v.y = 12 + v.xy += v.yx += v.xy; + // v1 and v2, both are initialized with 12 + vec2 v1 = v, v2 = v; + + v1.xy += v2.yx += ++(v.xy); // v1 = 37, v2 = 25 each + v1.xy += v2.yx += (v.xy)++; // v1 = 75, v2 = 38 each + gl_FragColor = vec4(v1,v2); // 75, 75, 38, 38 +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle1_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle1_vert.vert new file mode 100644 index 0000000000..06ce3b3ee3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle1_vert.vert @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Normal; +uniform mat4 gtf_NormalMatrix; +void main(void) +{ + vec4 v = vec4(1,2,3,4); + vec3 v3 = vec3(5,6,7); + vec4 v4 = vec4(normalize(v3.yzy).xyz.zyx, 1.0); + gl_Position = v4 + vec4(normalize(gtf_NormalMatrix * gtf_Normal).xyz.zyx, v4.y); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle2_frag.frag new file mode 100644 index 0000000000..24074aa2a7 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle2_frag.frag @@ -0,0 +1,39 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f, f1, f2; + f = f1 = f2; + f += f1 += f2; + + vec4 v, v1, v2; + v = v1 = v2; + v += v1 += v2; + v.wx = v1.zx = v2.yx; + v.wx += v1.zx += v2.yx; + + mat4 m, m1, m2; + m = m1 = m2; + m += m1 += m2; + m[3].wx = m1[2].zx = m2[1].yx; + m[3].wx += m1[2].zx += m2[1].yx; + + mat4 am[4], am1[4], am2[4]; + am[3] = am1[2] = am2[1]; + am[3] += am1[2] += am2[1]; + am[3][3].wx = am1[2][2].zx = am2[1][1].yx; + am[3][3].wx += am1[2][2].zx += am2[1][1].yx; + am[3][3].wx += am1[2][2].zx += ++(am2[1][1].yx); + am[3][3].wx += am1[2][2].zx += (am2[1][1].yx)++; + + gl_FragColor = vec4(am[3][3].z, m[3].w, v.w, f); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle2_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle2_vert.vert new file mode 100644 index 0000000000..b197cc0bac --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle2_vert.vert @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + vec4 v1 = vec4(5,6,7,8); + vec4 v2 = vec4(9,10, 11, 12); + vec3 v3 = (v1 * v2).ywx; + float f = (v2 * v1).z; + vec3 v4 = normalize((v1.ywx * v3).xyz).xyz; + gl_Position = vec4(v4, f); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle3_frag.frag new file mode 100644 index 0000000000..4f2665c13e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectSwizzle3_frag.frag @@ -0,0 +1,24 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec4 v = vec4(5,6,7,8); + // value changes for lhs + // 8765, 6758, 857, 75 i.e. replace v.zx + // value changes for rhs + // 8765, 6758, 86 i.e replace with v.wy + // replace v.z with v.w + // replace v.x with v.y + // add 1.000000 to v.w and v.y + v.wzyx.zywx.wzy.zy = (v.wzyx.zywx.wx)++; + gl_FragColor = vec4(v); // 6,7,8,9 +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectVersion_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectVersion_V100_frag.frag new file mode 100644 index 0000000000..1a0405a264 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/CorrectVersion_V100_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#version 100 +#ifdef GL_ES +precision mediump float; +#endif +/* #version can only be followed by number 100. The only statements before + #version can be comment or white spaces */ + +void main() +{ + gl_FragColor = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/DuplicateVersion1_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/DuplicateVersion1_V100_frag.frag new file mode 100644 index 0000000000..fce81e58b5 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/DuplicateVersion1_V100_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#version 100 +#version 100 +#ifdef GL_ES +precision mediump float; +#endif +/* Two version statements are not allowed since any #version must be the first non-whitespace, non-comment */ + +void main() +{ + gl_FragColor = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/FunctionParam_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/FunctionParam_vert.vert new file mode 100644 index 0000000000..4b74943bdf --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/FunctionParam_vert.vert @@ -0,0 +1,21 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +int y = 1; + +int foo(int, int b[y]) // array size should be constant +{ + return 1; +} + +void main() +{ + int a[1]; + + gl_Position = vec4(1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Include_Preprocessor_Directive_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Include_Preprocessor_Directive_frag.frag new file mode 100644 index 0000000000..0b7d674b8d --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Include_Preprocessor_Directive_frag.frag @@ -0,0 +1,12 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +#include "GL/build/NVIDIA_Test_Include_frag.frag" diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Low_Level_Assembly_Reserved_Words_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Low_Level_Assembly_Reserved_Words_frag.frag new file mode 100644 index 0000000000..4086830477 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Low_Level_Assembly_Reserved_Words_frag.frag @@ -0,0 +1,27 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float MIN; +uniform float R0; +uniform float FOGC; +uniform float CUBE; +uniform float f; +uniform float o; +uniform float p; +uniform float w; +uniform float x; +uniform float y; +uniform float z; + +void main() +{ + gl_FragColor = vec4(f, o, p, w); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Main_Parameters_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Main_Parameters_vert.vert new file mode 100644 index 0000000000..200f39d74b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Main_Parameters_vert.vert @@ -0,0 +1,12 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main(vec4 position : POSITION) +{ + gl_Position = position; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/ParseTest3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/ParseTest3_frag.frag new file mode 100644 index 0000000000..1242467a08 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/ParseTest3_frag.frag @@ -0,0 +1,20 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + const vec4 v = vec4(normalize(vec4(1))); // Builtin functions are constant expressions if all their parameters are constant expressions - code ok + const vec4 v1 = vec4(clamp(1.0, .20, 3.0)); // Builtin functions are constant expressions if all their parameters are constant expressions - code ok + float f = 1.0; + const vec4 v2 = vec4(float(vec4(1,2,3,f))); // f is not constant - code fails and test does not compile (expected) + + gl_FragColor = v + v1 + v2; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/ParseTest4_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/ParseTest4_frag.frag new file mode 100644 index 0000000000..60ef6d31b1 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/ParseTest4_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + const vec4 v = vec2(2.0, 3.0); + gl_FragColor = v; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Permissive_Constant_Conversions_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Permissive_Constant_Conversions_frag.frag new file mode 100644 index 0000000000..526d62b20d --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Permissive_Constant_Conversions_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f = 2; // Should be 2.0 +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Permissive_Scalar_Vector_Expressions_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Permissive_Scalar_Vector_Expressions_frag.frag new file mode 100644 index 0000000000..cc67c7ffb1 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Permissive_Scalar_Vector_Expressions_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec2 v = vec2(1.0, 2.0); + v *= 2.0; // Legal in GLSL. +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/TernaryOp_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/TernaryOp_frag.frag new file mode 100644 index 0000000000..2356f00596 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/TernaryOp_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + mat4 m; + vec4 v; + bool b; + gl_FragColor = b ? v : m; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Texture_Rectangle_Samplers_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Texture_Rectangle_Samplers_frag.frag new file mode 100644 index 0000000000..48bb0d609e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/Texture_Rectangle_Samplers_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2DRect samp; + +void main() +{ + gl_FragColor = texture2DRect(samp, vec2(0.0, 0.0)); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array10_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array10_frag.frag new file mode 100644 index 0000000000..a46681cf36 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array10_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif + +void main() +{ + float f[]; + float flt = f[5]; + float f[3]; // higher array index has already been used +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array11_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array11_frag.frag new file mode 100644 index 0000000000..dfd7abdadf --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array11_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f[]; + int f[4]; // array redeclared with a different type +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array1_frag.frag new file mode 100644 index 0000000000..ab402ba92b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array1_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int array[2][2]; // two dimentional arrays are not allowed +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array2_frag.frag new file mode 100644 index 0000000000..37d0cbc242 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array2_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + const int array[2]; // cannot declare const arrays +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array3_frag.frag new file mode 100644 index 0000000000..d8d7061bd1 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array3_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int array1[2], array2[2]; + bool b = array1 == array2; // equality operator does not work on arrays but works on array elements +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array4_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array4_frag.frag new file mode 100644 index 0000000000..92abeb826c --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array4_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f[-2]; // cannot declare arrays with negative size +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array5_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array5_frag.frag new file mode 100644 index 0000000000..e413562084 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array5_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i = 3; + float f[i]; // arrays should be declared with a constant size +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array6_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array6_frag.frag new file mode 100644 index 0000000000..483f49af9e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array6_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + const float index = 3.0; + float f[index]; // arrays should be declared with an integer expression not float +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array7_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array7_frag.frag new file mode 100644 index 0000000000..44dd6e6d9a --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array7_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f[5]; + f[]; // array used without a size +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array8_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array8_frag.frag new file mode 100644 index 0000000000..97db8819d6 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array8_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f[5]; + float f[]; // redeclaration of array already declared with a size +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array9_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array9_frag.frag new file mode 100644 index 0000000000..f75edc75dc --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/array9_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec2 array[2]; + array.xy; // arrays cannot directly be swizzled, however, an element of array can be swizzled +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute1_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute1_vert.vert new file mode 100644 index 0000000000..bb2f1be6d6 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute1_vert.vert @@ -0,0 +1,14 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute int i; // attributes cannot be int or bool + +void main() +{ + gl_Position = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute2_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute2_vert.vert new file mode 100644 index 0000000000..2e3309b530 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute2_vert.vert @@ -0,0 +1,14 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute float f[2]; // attributes cannot be arrays + +void main() +{ + gl_Position = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute_frag.frag new file mode 100644 index 0000000000..894197be37 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + attribute float foo; // attributes can be declared at global scope in vertex shader only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute_vert.vert new file mode 100644 index 0000000000..9cf16299a2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/attribute_vert.vert @@ -0,0 +1,12 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + attribute float foo; // attributes can be declared at a global scope only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/break_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/break_frag.frag new file mode 100644 index 0000000000..6bfdcbd367 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/break_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + break; // break keyword allowed only inside the loops +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_001_to_008.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_001_to_008.html new file mode 100644 index 0000000000..3ff10f436e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_001_to_008.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_001_to_008.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_009_to_016.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_009_to_016.html new file mode 100644 index 0000000000..c3f6658290 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_009_to_016.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_009_to_016.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_017_to_024.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_017_to_024.html new file mode 100644 index 0000000000..1869eca48c --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_017_to_024.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_017_to_024.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_025_to_032.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_025_to_032.html new file mode 100644 index 0000000000..132f0ce734 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_025_to_032.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_025_to_032.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_033_to_040.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_033_to_040.html new file mode 100644 index 0000000000..52c70b73f5 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_033_to_040.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_033_to_040.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_041_to_048.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_041_to_048.html new file mode 100644 index 0000000000..c516edb190 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_041_to_048.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_041_to_048.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_049_to_056.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_049_to_056.html new file mode 100644 index 0000000000..db09be970e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_049_to_056.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_049_to_056.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_057_to_064.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_057_to_064.html new file mode 100644 index 0000000000..8ce48b7a17 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_057_to_064.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_057_to_064.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_065_to_072.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_065_to_072.html new file mode 100644 index 0000000000..cf5b0217df --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_065_to_072.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_065_to_072.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_073_to_080.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_073_to_080.html new file mode 100644 index 0000000000..a09643f167 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_073_to_080.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_073_to_080.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_081_to_088.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_081_to_088.html new file mode 100644 index 0000000000..3a06c23a38 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_081_to_088.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_081_to_088.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_089_to_096.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_089_to_096.html new file mode 100644 index 0000000000..992594a604 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_089_to_096.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_089_to_096.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_097_to_104.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_097_to_104.html new file mode 100644 index 0000000000..27ce540c91 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_097_to_104.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_097_to_104.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_105_to_112.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_105_to_112.html new file mode 100644 index 0000000000..684fa98f86 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_105_to_112.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_105_to_112.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_113_to_120.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_113_to_120.html new file mode 100644 index 0000000000..5c18100083 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_113_to_120.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_113_to_120.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_121_to_128.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_121_to_128.html new file mode 100644 index 0000000000..d645465e27 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_121_to_128.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_121_to_128.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_129_to_136.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_129_to_136.html new file mode 100644 index 0000000000..9abe40c351 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_129_to_136.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_129_to_136.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_137_to_144.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_137_to_144.html new file mode 100644 index 0000000000..48d233809f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_137_to_144.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_137_to_144.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_145_to_152.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_145_to_152.html new file mode 100644 index 0000000000..08920dd824 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_145_to_152.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_145_to_152.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_153_to_160.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_153_to_160.html new file mode 100644 index 0000000000..eb950e3cfa --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_153_to_160.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_153_to_160.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_161_to_168.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_161_to_168.html new file mode 100644 index 0000000000..9c66171bfc --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_161_to_168.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_161_to_168.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_169_to_176.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_169_to_176.html new file mode 100644 index 0000000000..1bd3c63c47 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_169_to_176.html @@ -0,0 +1,111 @@ + + + + + + +WebGL GLSL conformance test: build_169_to_176.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_177_to_178.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_177_to_178.html new file mode 100644 index 0000000000..cdc2b38bcc --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_177_to_178.html @@ -0,0 +1,51 @@ + + + + + + +WebGL GLSL conformance test: build_177_to_178.html + + + + + + + + +
+
+ + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma1_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma1_vert.vert new file mode 100644 index 0000000000..26473e46e9 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma1_vert.vert @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + int i, j, k; + float f; + i = j, k, f; + i = (j, k, f); // float cannot be assigned to int + gl_Position = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma2_frag.frag new file mode 100644 index 0000000000..c7061f7ae7 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma2_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + const vec4 v = (vec4(1,2,3,4), vec4(5,6,7,8), 1.2); // right most value of comma operator shoul be a vec4 + const vec4 v1 = (vec3(0.2, 2.0), vec4(1,2,3,4), vec4(5,6,7,8)); + const vec4 v2 = (vec4(1,2,3,4), vec2(2.1, 2), vec4(5,6,7,8)); + gl_FragColor = v + v1 + v2; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma2_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma2_vert.vert new file mode 100644 index 0000000000..9c323689f6 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma2_vert.vert @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + int i, j, k; + float f; + i = j, k, f; + i = (j = k, f = 1.0); // float cannot be assigned to int + gl_Position = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma3_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma3_vert.vert new file mode 100644 index 0000000000..9edcb98b21 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comma3_vert.vert @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + int i, j, k; + float f; + i = j, k, f; + i = j = k, f = 1.0; + i = j, k = (3, f); // float cannot be assigned to int + gl_Position = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comment_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comment_frag.frag new file mode 100644 index 0000000000..8d0a382874 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/comment_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + /****** // comment not closed +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional1_frag.frag new file mode 100644 index 0000000000..eb830f4fcc --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional1_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f1,f2; + int i; + float f3 = i ? f1 : f2; // expression must be boolean and not int +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional2_frag.frag new file mode 100644 index 0000000000..451a8bd9eb --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional2_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f1,f2; + int i; + bool b; + float f3 = b ? i : f2; // second and third expression should of the type float +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional3_frag.frag new file mode 100644 index 0000000000..65b1b46bbb --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/conditional3_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f1,f2; + bool b; + int i = b ? f1 : f2; // second and third expression type does not match the lvalue type +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constFunc_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constFunc_frag.frag new file mode 100644 index 0000000000..8e3a2a6524 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constFunc_frag.frag @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +vec2 func() +{ + vec2 v; + return v; +} + +void main() +{ + const vec3 v = vec3(1.0, func()); // user defined functions do not return const value + gl_FragColor = vec4(v, v); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor1_frag.frag new file mode 100644 index 0000000000..ff73bcdeae --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor1_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec4 v = vec4(1,2,3); // insufficient data provided for constructor, 4 values are required +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor2_frag.frag new file mode 100644 index 0000000000..127bdba564 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor2_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec3 v; + vec4 v1 = vec4(v); // insufficient data specified for construction +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor3_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor3_V100_frag.frag new file mode 100644 index 0000000000..5312587710 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/constructor3_V100_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec3 v; + vec4 v1 = vec4(v,v,v); // too many arguments in the constructor +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/continue_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/continue_frag.frag new file mode 100644 index 0000000000..bdf83e2abe --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/continue_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + continue; // continue keyword allowed only inside the loops +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType10_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType10_frag.frag new file mode 100644 index 0000000000..4456d64178 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType10_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f; + float f; // redeclaration of a variable +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType11_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType11_frag.frag new file mode 100644 index 0000000000..ffecbbf8f5 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType11_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i = 08; // invalid octal number +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType12_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType12_frag.frag new file mode 100644 index 0000000000..4cf8b18af0 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType12_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i = 0xa8g; // invalid hexadecimal number +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType13_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType13_frag.frag new file mode 100644 index 0000000000..7a21e6f633 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType13_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i = 1; + float f = 1.2; + float result = f * i; // auto promotion now allowed +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType19_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType19_frag.frag new file mode 100644 index 0000000000..fb98c75308 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType19_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D s; +void main() +{ + int i = int(s); // conversion not allowed +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType1_frag.frag new file mode 100644 index 0000000000..6f3baa2b19 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType1_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + void v; // variable cannot be declared of the type void +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType2_frag.frag new file mode 100644 index 0000000000..dec2aa0574 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType2_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D samp1; +uniform sampler2D samp2 = samp1; // uniforms are read only + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType3_frag.frag new file mode 100644 index 0000000000..726ba88814 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType3_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform int i = 1; // uniforms are read only + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType4_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType4_frag.frag new file mode 100644 index 0000000000..8baea0a624 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType4_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i = 1.0; // automatic type conversion does not take place, float cannot be converted to int +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType5_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType5_frag.frag new file mode 100644 index 0000000000..7e1ff75209 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType5_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f = 1; // int cannot be converted to float, use constructor to do the conversion explicitly +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType6_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType6_frag.frag new file mode 100644 index 0000000000..e6ff4213e8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType6_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + const float f; // constants must be initialized +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType7_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType7_frag.frag new file mode 100644 index 0000000000..be31a3cba1 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType7_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float f; +void main() +{ + f = 1.0; // uniforms are read only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType8_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType8_frag.frag new file mode 100644 index 0000000000..dddecc4a17 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType8_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying float f; +void main() +{ + f = 1.0; // varyings cannot be written to in a fragment shader, they can be written to in a vertex shader +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType9_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType9_frag.frag new file mode 100644 index 0000000000..1029d3d445 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dataType9_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying float f; +void main() +{ + float flt = 1.0; + flt++; + f++; // varyings in a fragment shader are read only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/default.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/default.frag new file mode 100644 index 0000000000..af7b0e05a1 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/default.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main (void) +{ + gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/default.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/default.vert new file mode 100644 index 0000000000..8c736abd5f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/default.vert @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +void main (void) +{ + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; + gl_PointSize = 1.0; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dowhile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dowhile_frag.frag new file mode 100644 index 0000000000..4143dc4c36 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dowhile_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f; + do { + } while(f); // condition should be boolean +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec2_frag.frag new file mode 100644 index 0000000000..9451b55d6f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec2_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + dvec2 d; // dvec2 is not a valid datatype, reserved for future use +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec3_frag.frag new file mode 100644 index 0000000000..b7f7817168 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec3_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + dvec3 d; // dvec3 is not a valid datatype, reserved for future use +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec4_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec4_frag.frag new file mode 100644 index 0000000000..56beb6a5a7 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/dvec4_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + dvec4 d; // dvec4 is not a valid datatype, reserved for future use +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension2_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension2_V100_frag.frag new file mode 100644 index 0000000000..085a7e3535 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension2_V100_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +#extension all : require // cannot use require or enable with all +#extension all : enable // cannot use require or enable with all + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension3_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension3_V100_frag.frag new file mode 100644 index 0000000000..0005c14edf --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension3_V100_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +#extension foo : require // error extension not supported + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension5_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension5_V100_frag.frag new file mode 100644 index 0000000000..6198d6ffe3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension5_V100_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +#extension all : ddisablee // error, behavior is not supported + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension6_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension6_V100_frag.frag new file mode 100644 index 0000000000..6a33fa4feb --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension6_V100_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +#extension // error name and behavior not specified + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension7_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension7_V100_frag.frag new file mode 100644 index 0000000000..0e636d5125 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension7_V100_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +#extension foo // ":" missing after extension name + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension8_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension8_V100_frag.frag new file mode 100644 index 0000000000..7c12432568 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension8_V100_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +#extension foo : // behavior not specified + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension9_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension9_V100_frag.frag new file mode 100644 index 0000000000..dd7d69dcaf --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/extension9_V100_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +#extension foo behavior // ":" missing after extension name + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float2_frag.frag new file mode 100644 index 0000000000..23a31ca990 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float2_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float2 f; // float2 is not a valid datatype +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float3_frag.frag new file mode 100644 index 0000000000..a73d3d4454 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float3_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float3 f; // float3 is not a valid datatype +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float4_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float4_frag.frag new file mode 100644 index 0000000000..d381373ad8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/float4_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float4 f; // float4 is not a valid datatype +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly1_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly1_vert.vert new file mode 100644 index 0000000000..5ebba33d94 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly1_vert.vert @@ -0,0 +1,12 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + gl_FrontFacing = true; // can be used in fragment shader only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly2_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly2_vert.vert new file mode 100644 index 0000000000..480056b079 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly2_vert.vert @@ -0,0 +1,12 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + gl_FragCoord = vec4(1.0); // can be used in fragment shader only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly3_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly3_vert.vert new file mode 100644 index 0000000000..8e9cb00815 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly3_vert.vert @@ -0,0 +1,12 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + gl_FragColor = vec4(1.0); // can be used in fragment shader only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly4_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly4_vert.vert new file mode 100644 index 0000000000..4f6448369f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly4_vert.vert @@ -0,0 +1,12 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + discard; // can be used in fragment shader only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly_vert.vert new file mode 100644 index 0000000000..28ea00ef4f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/fragmentOnly_vert.vert @@ -0,0 +1,12 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + gl_FragDepth = 1.0; // can be used in fragment shader only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function10_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function10_frag.frag new file mode 100644 index 0000000000..17dfadbfd9 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function10_frag.frag @@ -0,0 +1,24 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void function(in int i); + +void main() +{ + float f; + // overloaded function not present + function(f); +} + +void function(in int i) +{ + i = 3; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function1_frag.frag new file mode 100644 index 0000000000..a3327a6adb --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function1_frag.frag @@ -0,0 +1,23 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void function(int i) +{ + return i; // void function cannot return a value +} + +void main() +{ + int i; + function(i); +} + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function2_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function2_V100_frag.frag new file mode 100644 index 0000000000..5b9d57dc51 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function2_V100_frag.frag @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void function(int i[]) // size of array must be specified +{ +} + +void main() +{ + int i[2]; + function(i); +} + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function3_frag.frag new file mode 100644 index 0000000000..44835de7fa --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function3_frag.frag @@ -0,0 +1,23 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void function(const int i) +{ + i = 3; // const value cant be modified +} + +void main() +{ + int i; + function(i); +} + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function4_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function4_frag.frag new file mode 100644 index 0000000000..eeabde9b7e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function4_frag.frag @@ -0,0 +1,23 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform int uniformInt; + +void function(out int i) +{ + i = 1; +} + +void main() +{ + function(uniformInt); // out and inout parameters cannot be uniform since uniforms cannot be modified +} + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function6_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function6_frag.frag new file mode 100644 index 0000000000..cbcc433eb3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function6_frag.frag @@ -0,0 +1,23 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void function(const out int i) +{ // out parameters cannot be const + i = 3; +} + +void main() +{ + int i; + function(i); +} + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function7_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function7_frag.frag new file mode 100644 index 0000000000..4c0902881c --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function7_frag.frag @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void function(uniform int i) +{ // uniform qualifier cannot be used with function parameters +} + +void main() +{ + int i; + function(i); +} + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function8_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function8_frag.frag new file mode 100644 index 0000000000..debe6e8058 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function8_frag.frag @@ -0,0 +1,23 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void function(const inout int i) +{ // inout parameters cannot be const + i = 3; +} + +void main() +{ + int i; + function(i); +} + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function9_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function9_frag.frag new file mode 100644 index 0000000000..96af74bf97 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/function9_frag.frag @@ -0,0 +1,24 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void function(inout int i); + +void main() +{ + int i; + function(i); +} + +// function definition has different parameter qualifiers than function declaration +void function(in int i) +{ + i = 3; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec2_frag.frag new file mode 100644 index 0000000000..8911b69e64 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec2_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + hvec2 f; // hvec2 is not a valid datatype, reserved for future use +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec3_frag.frag new file mode 100644 index 0000000000..a3b61df2e2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec3_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + hvec3 f; // hvec3 is not a valid datatype, reserved for future use +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec4_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec4_frag.frag new file mode 100644 index 0000000000..94e7970fa8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/hvec4_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + hvec4 f; // hvec4 is not a valid datatype, reserved for future use +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier1_frag.frag new file mode 100644 index 0000000000..70d1d9c80e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier1_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int 1i; // incorrect identifier name +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier2_frag.frag new file mode 100644 index 0000000000..316e934519 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier2_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int gl_int; // identifier name cannot begin with "gl_" +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier3_frag.frag new file mode 100644 index 0000000000..9bbeaf6520 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/identifier3_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i; + x; // identifier x used without being declared +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/if1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/if1_frag.frag new file mode 100644 index 0000000000..0301684831 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/if1_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i; + if (i) // condition of if statement must be a boolean + i++; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/if2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/if2_frag.frag new file mode 100644 index 0000000000..04fbfdfc23 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/if2_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec2 v; + int i; + if (v) // vectors cannot be used as conditional expression for if statement + i++; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment1_frag.frag new file mode 100644 index 0000000000..4eeb5b60bf --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment1_frag.frag @@ -0,0 +1,20 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct s { + int i; +} s1; + +void main() +{ + s1.i++; + s1++; // structure cannot be incremented +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment2_frag.frag new file mode 100644 index 0000000000..561678b0ca --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment2_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i; + (i+i)++; // i+i is not an l-value +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment3_frag.frag new file mode 100644 index 0000000000..0a32504734 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment3_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform sampler2D sampler2d; + +void main() +{ + sampler2d++; // uniforms cannot be modified +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment4_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment4_frag.frag new file mode 100644 index 0000000000..23ff6b43e8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment4_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i; + i++ = 5; // i++ is not an l-value +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment6_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment6_frag.frag new file mode 100644 index 0000000000..0bc50043ac --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/increment6_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i; + ++i++; // ++i++ is equivalent to ++(i++) which fails because i++ is not an lvalue. (++i)++; is legal. +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/input.run.txt b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/input.run.txt new file mode 100644 index 0000000000..78dde7d629 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/input.run.txt @@ -0,0 +1,24 @@ +# this file is auto-generated. DO NOT EDIT. +build_001_to_008.html +build_009_to_016.html +build_017_to_024.html +build_025_to_032.html +build_033_to_040.html +build_041_to_048.html +build_049_to_056.html +build_057_to_064.html +build_065_to_072.html +build_073_to_080.html +build_081_to_088.html +build_089_to_096.html +build_097_to_104.html +build_105_to_112.html +build_113_to_120.html +build_121_to_128.html +build_129_to_136.html +build_137_to_144.html +build_145_to_152.html +build_153_to_160.html +build_161_to_168.html +build_169_to_176.html +build_177_to_178.html diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main1_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main1_vert.vert new file mode 100644 index 0000000000..95c266310a --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main1_vert.vert @@ -0,0 +1,11 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +main() // return type of main should be void +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main2_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main2_vert.vert new file mode 100644 index 0000000000..8cdfe98b46 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main2_vert.vert @@ -0,0 +1,12 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main(int i) // main function cannot take any parameters +{ + gl_Position = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main3_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main3_vert.vert new file mode 100644 index 0000000000..09a21a9e92 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/main3_vert.vert @@ -0,0 +1,12 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +int main() // return type of main should be void +{ + return 1; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/matrix_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/matrix_V100_frag.frag new file mode 100644 index 0000000000..f3dc0adb64 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/matrix_V100_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + mat3 m; + mat4 m1 = mat4(m); +} \ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/normal_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/normal_vert.vert new file mode 100644 index 0000000000..369bce99f9 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/normal_vert.vert @@ -0,0 +1,13 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Normal; +void main() +{ + gtf_Normal = vec3(1.0,2.0,3.0); // cannot be modified an attribute +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser10_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser10_frag.frag new file mode 100644 index 0000000000..6c25734473 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser10_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + 5 += 5; // l-value missing +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser1_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser1_vert.vert new file mode 100644 index 0000000000..90a6263dd2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser1_vert.vert @@ -0,0 +1,13 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +void main() +{ + int a // semicolon missing at the end of the statement + gl_Position = vec4(a); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser3_frag.frag new file mode 100644 index 0000000000..7b543ad8fd --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser3_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f[3]; + f[3] = 1.0; // index of array greater than the size of the array +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser4_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser4_frag.frag new file mode 100644 index 0000000000..c73e4b3d31 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser4_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + const int i = 5; + i++; // const cannot be modified +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser5_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser5_frag.frag new file mode 100644 index 0000000000..ee9cbdaac5 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser5_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec2 v; + v.z = 1.2; // vec2 does not have a z component +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser6_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser6_frag.frag new file mode 100644 index 0000000000..2d4d021fd2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser6_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f1,f2,f3; + f3 = f1 > f2; // f1 > f2 result in a bool that cannot be assigned to a float +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser7_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser7_frag.frag new file mode 100644 index 0000000000..49032310cd --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser7_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + mat2 m1,m2; + bool b = m1 > m2; // greater-than operator can not operate on matrices, however, equal (==) and not equal (!=) operators can be used with matrices +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser8_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser8_frag.frag new file mode 100644 index 0000000000..76649c54ee --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser8_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec2 v2; + vec3 v3; + bool b = v2 == v3; // equal operator cannot operator on vectors of different sizes +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser9_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser9_frag.frag new file mode 100644 index 0000000000..1283c2268d --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/parser9_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f1,f2; + bool b = f1 && f2; // &&, || and ^^ operate on a boolean expression only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess0_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess0_frag.frag new file mode 100644 index 0000000000..e9d1d9fcd1 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess0_frag.frag @@ -0,0 +1,63 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +//test for else elif mismatch +#define test(x,y) (x+y) + +void main(void){ + int sum =0; + #define x 8 + #endif + #if (x==8) + #undef x + #endif + + #if 1 + #undef x + #endif + + #if 1 + #define t4 4 + #endif + + sum=test(3,6)+t4; + #if 1 + #if 1 + #if 1 + #if 1 + #if 0 + #undef test + #else + #if 1 + #undef test + #endif + #if 0 + #undef test + #else + #if 0 + #undef test + #else + #if 1 + #undef test + #else + #undef test + #else + #jdhgj + #endif + #endif + #endif + #endif + #endif + #endif + #endif + #endif + +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess10_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess10_frag.frag new file mode 100644 index 0000000000..feb227970d --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess10_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +/* The program should terminate with an error message and not get into an + infinite loop */ +#ifdef name + +void main() +{ + gl_FragColor = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess1_frag.frag new file mode 100644 index 0000000000..72f4d14258 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess1_frag.frag @@ -0,0 +1,64 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +// tests for macro redifinition (t2) and the #if and #else nestings. +// takes care of elif also. + +#define t1 (1+2) +#define t2 2 +#define t2 3 + +// testing the if depth +#if (t1==3) + #define t3 3 + #if defined t2 + #define t4 4 + #if defined(t3) + #define t5 5 + #ifdef t5 + #define t6 6 + #ifndef t7 + #define t7 7 + #else + #define t8 8 + #endif + #endif + #else + #ifndef t8 + #define t8 8 + #elif (t8==8) + #define t9 9 + #else + #if defined t7 + #define t9 9 + #endif + #endif + #endif + #else + #define t10 10 + #endif +#endif + + +#define t8 8 +#define t9 9 +#define t10 10 + +void main(void) +{ + int sum=1 ; + sum = t1+t2; + sum = t3+t4; + sum = t5+t6; + sum = t7+t8; + sum = t9+t10; +} + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess2_frag.frag new file mode 100644 index 0000000000..9aa00e849d --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess2_frag.frag @@ -0,0 +1,60 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +// #line directive-- test cases. +// chks for Invalid directives, all possible #line errors +// Also checks the correct verions of #line dorective. + +#define t1 1 +#define t2 2 + +# +# +# +# +#line 8 +#line "" +#line 3 3 + +#linekfj +#line c c +#line t1 t2 +#line 77 89 +#line 65.4 +#line message to the user +#line +#line345 + +void main(void) +{ + int sum =1; + sum = __LINE__; + sum = __FILE__; + #line 4 5 + sum = __LINE__; + sum = __FILE__; + #line 9 + sum = __LINE__ + __FILE__ ; + sum = __FILE__; + # + # + sum = __VERSION__; + sum = sum + __LINE__ ; + #line 4 5 + #line 5 8 + sum = __LINE__; + sum = __FILE__; + sum = __VERSION__; + +} + + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess3_frag.frag new file mode 100644 index 0000000000..c9e2006a97 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess3_frag.frag @@ -0,0 +1,43 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +// simple macro expansions. +// Tests for Too few macro arguments, too many macro arguments. +// Macros with no arguments. + +#define t1 -1 +#define t2 2 + +#define test -258 +#define test1 (test*test) +#define test2(x) (x+test1) +#define test3() (test2(8)*(test*test1)) +#define test4(x,y) (x+y) + +void main(void) +{ + int sum =0; + sum = test3(); + sum = test3(3); + + sum = test2(9); + sum = test2(9,8); + + sum = test4; + sum = test2(8,5,78,9); + sum = sum + test1; + sum = 8+58+sum; + sum = sum +test; + sum = (t1+t2); + sum = test4(test3(),test2(test3())); + sum = test4(3,8,5); + sum = test4(); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess4_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess4_frag.frag new file mode 100644 index 0000000000..5d9c756a63 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess4_frag.frag @@ -0,0 +1,60 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +// #error and #pragma directives -- test cases. +// tests for errors in #pragma directive. + +#pragma optimize(on) +#pragma debug(off) + +int foo(int); + +void main(void) +{ + int sum =0; + #error ; + #error 78 + #error c + #error "message to the user " + #error message to the user + #error + #error + #define t1 1 + sum = t1*t1; + foo(sum); + +} + +#pragma optimize(off) +#pragma bind(on) +#pragma pack(off) + +int foo(int test) +{ + int binding=0; + binding = test; + return binding; +} + +#line 4 +#pragma +#line 5 6 +#pragma optmimize on +#pragma debug off +#pragma debug(off +#line 9 +#prgma bind(off) +#pragma bind +#pragma (on) +#pragma on (on) +#pragma optmize(on + + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess6_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess6_frag.frag new file mode 100644 index 0000000000..836bd0223f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess6_frag.frag @@ -0,0 +1,37 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +// operator precedence and some macro expansions. + +#define test (1+2) +#define test1 (test*4) +#define test2 (test1/test) +//#define test3 (-1+2*3/4%test) +#define test3 (-1+2*3/4) +//#define test4 (test & test1 |test2) +#define test4 (test) +#define test5 (!8+~4+4-6) +#define test6 (test1>>1) +#define test7 (test1<<1) +#define test8 (test2^6) +#define test9 (test4 || test5 && test1) +#define test10 (0) + +void main(void) +{ + int sum =0; + sum = test4; + sum = test3*test2+test1-test; +// sum = test3/test6 + test4*test7 - test7 % test9; +// sum = test3/test6 + test4*test7 - test7; + sum = test10*test5; +} + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess7_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess7_frag.frag new file mode 100644 index 0000000000..08f62b1110 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/preprocess7_frag.frag @@ -0,0 +1,51 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +// testing for char constants in #if and #elif +// Also checking whether reserved words can be redefined. + +#define t1 c +#define t2 d +#define asm a + + #if(t1==c) + #define t3 3 + #elif(t1==d) + #define t4 4 + #elif(t2==c) + #define t5 5 + #endif + + #ifndef t1 + #define t7 7 + #elif (t2==d) + #define t6 6 + #endif + + #if (t2=='d') + #define half 5 + #else + #define half 8 + #endif + + #ifdef t22 + #define x 5 + #endif + + void main(void) + { + int sum =0,a=9; + + sum = half + sum; + sum = asm + a; + + } + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/scoping1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/scoping1_frag.frag new file mode 100644 index 0000000000..89c9a51209 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/scoping1_frag.frag @@ -0,0 +1,21 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + bool b; + if (b) + { + int i = 1; + i++; + } + i++; // i is not declared in this scope +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/scoping2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/scoping2_frag.frag new file mode 100644 index 0000000000..8667f40061 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/scoping2_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + { + int i = 1; + i++; + } + i++; // i is not declared in this scope +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct10_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct10_frag.frag new file mode 100644 index 0000000000..fb0c78299d --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct10_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct s { + int i; +} s1[2]; + +void main() +{ + s1.i = 1; // s1 is an array. s1[0].i is correct to use +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct11_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct11_frag.frag new file mode 100644 index 0000000000..152ce49aed --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct11_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct s { + int i; +} s1; + +void main() +{ + s1 = -s1; // cannot calculate negative of a structure +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct1_frag.frag new file mode 100644 index 0000000000..0fcbb8599f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct1_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct s { + int i; +} uniform uniformStruct; // uniform keyword should be used before the keyword struct + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct2_frag.frag new file mode 100644 index 0000000000..5682f67dfc --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct2_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct s { + int i = 1.0; // struct members cannot be initialized at the time of structure declaration +} s1; + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct3_frag.frag new file mode 100644 index 0000000000..2ec1e53616 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct3_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct s { + uniform int i; // structure members cannot be declared with const qualifier +} s1; + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct4_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct4_frag.frag new file mode 100644 index 0000000000..ae7d547ae1 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct4_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct s { + const int i = 1; // structure members cannot be declared with const qualifier +} s1; + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct5_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct5_frag.frag new file mode 100644 index 0000000000..fd62320761 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct5_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform struct s { + int i; +} s1; + +void main() +{ + s1.i = 1; // uniforms are read only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct6_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct6_frag.frag new file mode 100644 index 0000000000..dd98cc01c6 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct6_frag.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying struct s { + int i; +} s1; // structures cannot be declared with varying qualifier + +void main() +{ +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct7_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct7_frag.frag new file mode 100644 index 0000000000..01a3206505 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct7_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + struct s { + } s1; // structures have to be declared with atleast one member +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct8_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct8_frag.frag new file mode 100644 index 0000000000..c900bc90c3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct8_frag.frag @@ -0,0 +1,23 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct s { + int i; +} s1; + +struct ss { + int i; +} s2; + +void main() +{ + s1 = s2; // two different structures cannot be assigned to each other +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct9_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct9_frag.frag new file mode 100644 index 0000000000..c661d25012 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/struct9_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +const struct s { + int i; +} s1 = s(1); + +void main() +{ + s1.i = 1; // const struct members cannot be modified +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle1_frag.frag new file mode 100644 index 0000000000..b11ea3cf91 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle1_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec2 v; + v.xy = 1.2; // swizzle needs two values, v.xy = vec2(1.2) is correct +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle2_frag.frag new file mode 100644 index 0000000000..705bd18776 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle2_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec2 v; + v.xx = vec2(1,1); // x cannot be used twice in l-value +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle3_frag.frag new file mode 100644 index 0000000000..b5b9fd6048 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/swizzle3_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec2 v; + vec3 v3 = v.xyz; // v is a vec2 and does not have a z component +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/typecast_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/typecast_frag.frag new file mode 100644 index 0000000000..fa1b124f66 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/typecast_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + vec4 v; + vec4 v1 = (vec4) v; // incorrect typecasting, vec4(v) is correct +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/uniform1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/uniform1_frag.frag new file mode 100644 index 0000000000..1270647faa --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/uniform1_frag.frag @@ -0,0 +1,23 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct gtf_FogParameters { +vec4 color; +float density; +float start; +float end; +float scale; +}; +uniform gtf_FogParameters gtf_Fog; +void main() +{ + gtf_Fog.density = 1.0; // cannot modify a uniform +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/uniform_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/uniform_frag.frag new file mode 100644 index 0000000000..195eaced46 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/uniform_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + uniform float foo; // uniforms can only be declared at a global scope +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying1_frag.frag new file mode 100644 index 0000000000..9f5122ea98 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying1_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying float foo; + +void main() +{ + foo = 5.0; // varying cannot be written by a fragment shader +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying2_frag.frag new file mode 100644 index 0000000000..74cc9f49f4 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying2_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying int foo; // varyings cannot be int or bool + +void main() +{ + +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying3_frag.frag new file mode 100644 index 0000000000..62ab65ec99 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying3_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 v = vec4(1,1,1,1);//gl_TexCoord[0]; // varyings cannot be initialized + +void main() +{ + +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying_frag.frag new file mode 100644 index 0000000000..f85d9fdb7b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/varying_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + varying float foo; // varyings can only be declared at a global scope +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vector_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vector_frag.frag new file mode 100644 index 0000000000..62c298eb1d --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vector_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + ivec4 v4; + v4 = v4 + 2.0; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/version2_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/version2_V100_frag.frag new file mode 100644 index 0000000000..b83fc6a467 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/version2_V100_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#pragma debug(on) +#version 100 // error #version should be the first statement in the program +#ifdef GL_ES +precision mediump float; +#endif + + +void main() +{ + gl_FragColor = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/version3_V100_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/version3_V100_frag.frag new file mode 100644 index 0000000000..21dfcc33ce --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/version3_V100_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +/* This is a comment*/ int i; // This is a global decl +#version 100 // error #version should be the first statement in the program +#ifdef GL_ES +precision mediump float; +#endif + + +void main() +{ + gl_FragColor = vec4(1); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertexOnly2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertexOnly2_frag.frag new file mode 100644 index 0000000000..1c85e221ce --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertexOnly2_frag.frag @@ -0,0 +1,15 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + gl_Position = vec4(4.0); // can be used in vertex shader only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertexOnly_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertexOnly_frag.frag new file mode 100644 index 0000000000..41ada2bf08 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertexOnly_frag.frag @@ -0,0 +1,25 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct gtf_PointParameters { +float size; +float sizeMin; +float sizeMax; +float fadeThresholdSize; +float distanceConstantAttenuation; +float distanceLinearAttenuation; +float distanceQuadraticAttenuation; +}; +uniform gtf_FogParameters gtf_Point; +void main() +{ + gtf_PointSize = 4.0; // can be used in vertex shader only +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertex_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertex_vert.vert new file mode 100644 index 0000000000..ab8cc4555e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/vertex_vert.vert @@ -0,0 +1,13 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +void main() +{ + gtf_Vertex = vec4(1.0,2.0,3.0, 4.0); // cannot modify an attribute +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while1_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while1_frag.frag new file mode 100644 index 0000000000..89e2c6bbb2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while1_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + int i; + while(i) { // condition should be boolean + } +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while2_frag.frag new file mode 100644 index 0000000000..31e75cfa90 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while2_frag.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + while(float f = 5.0) { // cannot declare variables in condition + } +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while_frag.frag new file mode 100644 index 0000000000..891d0992b0 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/while_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +void main() +{ + float f; + while(f) { // condition should be boolean + } +} -- cgit v1.2.3