Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Unified Diff: third_party/WebKit/LayoutTests/fast/canvas/webgl/webgl-sharedarraybuffer.html

Issue 2815793002: [SharedArrayBuffer] Add "AllowShared" extended attribute, used for WebGL (Closed)
Patch Set: merge HEAD Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/bindings/IDLExtendedAttributes.md » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/fast/canvas/webgl/webgl-sharedarraybuffer.html
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/webgl-sharedarraybuffer.html b/third_party/WebKit/LayoutTests/fast/canvas/webgl/webgl-sharedarraybuffer.html
new file mode 100644
index 0000000000000000000000000000000000000000..ef4f7ef6249c87511fd30fa08c92fa9a6618ae03
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/canvas/webgl/webgl-sharedarraybuffer.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="resources/webgl-test.js"></script>
+<script src="resources/webgl-test-utils.js"></script>
+</head>
+<body>
+<script>
+if (window.SharedArrayBuffer) {
+ var canvas = document.createElement("canvas");
+ var gl;
+ for (var name of ['webgl2', 'webgl']) {
+ try {
+ gl = canvas.getContext(name);
+ } catch(e) {
+ }
+ if (gl)
+ break;
+ }
+ var has_webgl2 = name == 'webgl2';
+
+ if (gl) {
+ // Nearly all of the tests below are invalid (e.g. will set the GL error),
+ // but we don't really care; we just want to ensure that passing a
+ // SharedArrayBuffer view is allowed and doesn't throw.
+ var sab = new SharedArrayBuffer(16);
+ var u8array = new Uint8Array(sab);
+ var i32array = new Int32Array(sab);
+ var u32array = new Uint32Array(sab);
+ var f32array = new Float32Array(sab);
+
+ var vs = "attribute float a; uniform float u; void main() {}";
+ var fs = "precision mediump float; void main() {}";
+ var program = WebGLTestUtils.loadProgram(gl, vs, fs);
+ var uniform = gl.getUniformLocation(program, 'u');
+ var attribute = gl.getAttribLocation(program, 'a');
+
+ test(() => {
+ gl.bufferData(gl.ARRAY_BUFFER, u8array, gl.STATIC_DRAW);
+ if (has_webgl2) {
+ gl.bufferData(gl.ARRAY_BUFFER, u8array, gl.STATIC_DRAW, 0, 1);
+ }
+ }, "bufferData");
+
+ test(() => {
+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, 0, 1, 1, 0, u8array);
+ if (has_webgl2) {
+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, 0, 1, 1, 0, u8array, 0);
+ }
+ }, "compressedTexImage2D");
+
+ test(() => {
+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 1, 1, 0, 0, u8array);
+ if (has_webgl2) {
+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 1, 1, 0, 0, u8array, 0);
+ }
+ }, "compressedTexSubImage2D");
+
+ test(() => {
+ gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, u8array);
+ if (has_webgl2) {
+ gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, u8array, 0);
+ }
+ }, "readPixels");
+
+ test(() => {
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA,
+ gl.UNSIGNED_BYTE, u8array);
+ if (has_webgl2) {
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA,
+ gl.UNSIGNED_BYTE, u8array, 0);
+ }
+ }, "texImage2D");
+
+ test(() => {
+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE,
+ u8array);
+ if (has_webgl2) {
+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 1, 1, gl.RGBA,
+ gl.UNSIGNED_BYTE, u8array, 0);
+ }
+ }, "texSubImage2D");
+
+ test(() => {
+ gl.uniformMatrix2fv(uniform, false, f32array);
+ }, "uniformMatrix2fv");
+
+ test(() => {
+ gl.uniformMatrix3fv(uniform, false, f32array);
+ }, "uniformMatrix3fv");
+
+ test(() => {
+ gl.uniformMatrix4fv(uniform, false, f32array);
+ }, "uniformMatrix4fv");
+
+ test(() => {
+ gl.vertexAttrib1fv(attribute, f32array);
+ }, "vertexAttrib1fv");
+
+ test(() => {
+ gl.vertexAttrib2fv(attribute, f32array);
+ }, "vertexAttrib2fv");
+
+ test(() => {
+ gl.vertexAttrib3fv(attribute, f32array);
+ }, "vertexAttrib3fv");
+
+ test(() => {
+ gl.vertexAttrib4fv(attribute, f32array);
+ }, "vertexAttrib4fv");
+
+ if (has_webgl2) {
+ test(() => {
+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, u8array, 0, 1);
+ }, "bufferSubData");
+
+ test(() => {
+ gl.getBufferSubData(gl.ARRAY_BUFFER, 0, u8array);
+ }, "getBufferSubData");
+
+ test(() => {
+ gl.compressedTexImage3D(gl.TEXTURE_3D, 0, 0, 1, 1, 1, 0, u8array);
+ }, "compressedTexImage3D");
+
+ test(() => {
+ gl.compressedTexSubImage3D(gl.TEXTURE_3D, 0, 0, 1, 1, 1, 0, 0, 0,
+ u8array);
+ }, "compressedTexSubImage3D");
+
+ test(() => {
+ gl.texImage3D(gl.TEXTURE_3D, 0, gl.RGBA, 1, 1, 1, 0, 0,
+ gl.UNSIGNED_BYTE, u8array);
+ gl.texImage3D(gl.TEXTURE_3D, 0, gl.RGBA, 1, 1, 1, 0, 0,
+ gl.UNSIGNED_BYTE, u8array, 0);
+ }, "texImage3D");
+
+ test(() => {
+ gl.texSubImage3D(gl.TEXTURE_3D, 0, 0, 0, 0, 1, 1, 1, gl.RGBA,
+ gl.UNSIGNED_BYTE, u8array);
+ }, "texSubImage3D");
+
+ test(() => {
+ gl.uniformMatrix2x3fv(uniform, false, f32array);
+ }, "uniformMatrix2x3fv");
+
+ test(() => {
+ gl.uniformMatrix3x2fv(uniform, false, f32array);
+ }, "uniformMatrix3x2fv");
+
+ test(() => {
+ gl.uniformMatrix2x4fv(uniform, false, f32array);
+ }, "uniformMatrix2x4fv");
+
+ test(() => {
+ gl.uniformMatrix4x2fv(uniform, false, f32array);
+ }, "uniformMatrix4x2fv");
+
+ test(() => {
+ gl.uniformMatrix3x4fv(uniform, false, f32array);
+ }, "uniformMatrix3x4fv");
+
+ test(() => {
+ gl.uniformMatrix4x3fv(uniform, false, f32array);
+ }, "uniformMatrix4x3fv");
+
+ test(() => {
+ gl.vertexAttribI4iv(attribute, i32array);
+ }, "vertexAttribI4iv");
+
+ test(() => {
+ gl.vertexAttribI4uiv(attribute, u32array);
+ }, "vertexAttribI4uiv");
+
+ test(() => {
+ gl.clearBufferiv(gl.COLOR, 0, i32array);
+ }, "clearBufferiv");
+
+ test(() => {
+ gl.clearBufferuiv(gl.COLOR, 0, u32array);
+ }, "clearBufferuiv");
+
+ test(() => {
+ gl.clearBufferfv(gl.COLOR, 0, f32array);
+ }, "clearBufferfv");
+ }
+ }
+}
+done();
+</script>
+</body>
+</html>
« no previous file with comments | « no previous file | third_party/WebKit/Source/bindings/IDLExtendedAttributes.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698