Commit Graph

246 Commits

Author SHA1 Message Date
Morris Tseng
f3d4ff499f Bug 1379920 - Introduce CanvasRenderer and its derived classes. r=nical,jrmuizel
This patch move common canvas interfaces out of layer. So I create a
base class CanvasRenderer which move interfaces from CanvasLayer.
CopyableCanvasRenderer from CopyableCanvasLayer, ClientCanvasRenderer
from ClientCanvasLayer and WebRenderCanvasRenderer from
WebRenderCanvasLayer. And finally, WebRenderCanvasRendererSync for the
non layers free mode and WebRenderCanvasRendererAsync for the layers
free mode.

Summary all changes in this patch.
* Move class CanvasLayer::Data to CanvasRenderer.h and rename it to
CanvasInitializeData. Because this class not only use by layer but also
* Move BasicCanvasLayer::UpdateSurface to
CopyableCanvasRenderer::ReadbackSurface.
* CanvasClient::Update now accepts ShareableCanvasRenderer as parameter.
not CanvasLayer.
use by layers-free mode. Move it out of layer's class makes more sense.
* Add InitializeCanvasRenderer in the canvas related classes to
initialize CanvasRenderer without involved layer.
* All canvas layer has function "CreateCanvasRendererInternal" that
initialize corresponding CanvasRenderer.

* Description of all CanvasRenderer classes:
** CanvasRenderer: Based classes.
** CopyableCanvasRenderer: Can readback canvas content to a
SourceSurface. Use by BasicCanvasLayer.
** ShareableCanvasRenderer: Provide IPC capabilities that allow sending
canvas content over IPC. This is pure virtual class because the IPC handling is
different in different LayerManager.
** ClientCanvasRenderer: Implement IPC handling for ClientLayerManager.
Use by ClientCanvasLayer.
** WebRenderCanvasRenderer: Implement IPC handling for
WebRenderLayerManager.
** WebRenderCanvasRendererSync: Use by WebRenderCanvasLayer.
** WebRenderCanvasRendererAsync: Use by layers-free mode in WebRender.

class diagram shows below:

                      +--------------+
                      |CanvasRenderer|
                      +-------+------+
                              ^
                              |
                  +----------------------+
                  |CopyableCanvasRenderer|
                  +----------------------+
                              ^
                              |
                  +-----------+-----------+
                  |ShareableCanvasRenderer|
                  +-----+-----------------+
                        ^      ^
          +-------------+      +-------+
          |                            |
+--------------------+       +---------+-------------+
|ClientCanvasRenderer|       |WebRenderCanvasRenderer|
+--------------------+       +--------+--+-----------+
                                      ^  ^
              +-----------------------+  +----+
              |                               |
+-------------+-------------+   +-------------+--------------+
|WebRenderCanvasRendererSync|   |WebRenderCanvasRendererAsync|
+---------------------------+   +----------------------------+

MozReview-Commit-ID: 5hqQ19W169r
2017-08-03 13:55:14 +08:00
Samuel Vargas
3ca06f7de4 Bug 1376039 - Convert ValidateBlendFuncEnum to static func. r=jgilbert
--HG--
extra : rebase_source : 0f4603d54951436770388b79bcb6e5d4b7782f5e
2017-06-23 17:31:05 -07:00
Samuel Vargas
d7f0c12cd3 Bug 1376039 - WebGL Conformance Failure: deqp/functional/gles3/integerstatequery.html. r=jgilbert
--HG--
extra : rebase_source : b8beba46757c7218d573367be82e162737e4a1c7
2017-06-23 16:19:49 -07:00
Samuel Vargas
f36d75726e Bug 1367919 - Add tracking for data allocation calls in WebGL. r=jgilbert 2017-06-22 14:32:00 -04:00
Kirk Steuber
8c3a82a2d2 Bug 1370727 - Return void from nsICanvasRenderingContextInternal::SetIsOpaque r=bz
nsICanvasRenderingContextInternal::SetIsOpaque returns nsresult, but no implementations return errors. It should return void instead.

MozReview-Commit-ID: LrGouaeoCvo

--HG--
extra : rebase_source : a17432006aa073edaecf15424a3b350309d704c4
2017-06-09 12:15:42 -07:00
Samuel Vargas
901459a071 Bug 1325113 - Implement support for WEBGL_compressed_texture_s3tc_srgb - r=jgilbert,qdot
MozReview-Commit-ID: mI4dlB2lK
2017-06-08 14:54:37 -07:00
Tom Tromey
aa6e054b71 Bug 1334279 - mark vsprintf-likes with MOZ_FORMAT_PRINTF; r=froydnj
This annotates vsprintf-like functions with MOZ_FORMAT_PRINTF.  This may
provide some minimal checking of such calls (the GCC docs say that it
checks for the string for "consistency"); but in any case shouldn't
hurt.

MozReview-Commit-ID: HgnAK1LiorE

--HG--
extra : rebase_source : 9c8d715d6560f89078c26ba3934e52a2b5778b6a
2017-05-04 12:10:19 -06:00
Chih-Yi Leu
69868ff3ef Bug 1355430 - Part2: Implement Require Fastpath for texture copy; r=baku,jgilbert
MozReview-Commit-ID: EPNSJbbJHP4

--HG--
extra : rebase_source : 588225a4113010964341d5cbbefefa06e0c48056
2017-04-11 17:15:25 +08:00
Sebastian Hengst
e4c87ce902 Backed out changeset 661144609b7a (bug 1355430) 2017-04-18 21:08:22 +02:00
Chih-Yi Leu
ca2cb984d5 Bug 1355430 - Part2: Implement Require Fastpath for texture copy; r=baku,jgilbert
MozReview-Commit-ID: EPNSJbbJHP4

--HG--
extra : rebase_source : b27a254e247a40285873b53edb036b5b97d4e0d8
2017-04-11 17:15:25 +08:00
Jeff Gilbert
326703ec04 Bug 1355763 - Add gfxAlphaType for specifying opaque/premult/non-premult. - r=daoshengmu
MozReview-Commit-ID: Jzr8aPYlEcO
2017-04-13 09:14:34 -07:00
Iris Hsiao
bf9a6182a2 Backed out changeset f97fd860c168 (bug 1355763) 2017-04-13 14:46:43 +08:00
Jeff Gilbert
95c5ba8077 Bug 1355763 - Add gfxAlphaType for specifying opaque/premult/non-premult. - r=daoshengmu
MozReview-Commit-ID: Jzr8aPYlEcO
2017-04-12 22:03:43 -07:00
Jeff Gilbert
5108749361 Bug 1333858 - Intersect should be fallible on overflow. - r=daoshengmu
MozReview-Commit-ID: 6lmIKKyXXah
2017-04-04 12:56:21 -07:00
Jeff Gilbert
d401ac72c1 Bug 1339256 - Simplify index validation. - r=kvark
MozReview-Commit-ID: 4FALdIyhBP8
2017-03-09 18:57:43 -08:00
Jeff Gilbert
e63fc0df83 Bug 1339256 - Detect robust_buffer_access_behavior. - r=daoshengmu
MozReview-Commit-ID: 4w5D9bOQbY8
2017-03-09 18:57:41 -08:00
Tom Tromey
9b663e797b Bug 1060419 - make WebGLContextUtils.cpp use VsprintfLiteral, r=froydnj
MozReview-Commit-ID: JhwopeIpUMo

--HG--
extra : rebase_source : 8540864ed969ad038e996b22d78ec3b4f1ba3cb8
2016-12-09 13:48:22 -10:00
Jeff Gilbert
a719834c77 Bug 1330022 - Remove trivial ValidateUniformMatrixTranspose virtual. - r=kvark
Removing a file reshuffled our unified builds, so this includes the fixes that required as well.
MozReview-Commit-ID: 7ZIoG2xIlS9
2017-02-13 15:37:57 -08:00
Jeff Gilbert
5a028b1063 Bug 1330022 - Centralize VertexAttrib[I]Pointer calls to improve perf. - r=kvark
MozReview-Commit-ID: IcGNZhJTU5K
2017-02-13 15:37:54 -08:00
Sebastian Hengst
e430d3ec19 Backed out changeset 0528322db042 (bug 1330022) for failing test_conformance__more__functions__vertexAttribPointerBadArgs.htm. r=backout 2017-02-10 23:32:32 +01:00
Sebastian Hengst
2e61c07a59 Backed out changeset cd91d6b1b500 (bug 1330022) 2017-02-10 23:31:47 +01:00
Jeff Gilbert
19c60a97a2 Bug 1330022 - Remove trivial ValidateUniformMatrixTranspose virtual. - r=kvark
Removing a file reshuffled our unified builds, so this includes the fixes that required as well.
MozReview-Commit-ID: 7ZIoG2xIlS9
2017-02-10 13:31:10 -08:00
Jeff Gilbert
ef8ebd3d10 Bug 1330022 - Centralize VertexAttrib[I]Pointer calls to improve perf. - r=kvark
MozReview-Commit-ID: IcGNZhJTU5K
2017-02-10 13:31:08 -08:00
Boris Zbarsky
3e7fca5cf9 Bug 1335368 part 9. Stop using IsCallerChrome in WebGL. r=bholley 2017-02-01 15:43:37 -05:00
Jeff Gilbert
4da6480883 Bug 1329815 - GeneratePerfWarning and warn on completed-FB invalidation. - r=kvark
MozReview-Commit-ID: C9J3qdnsaZF
2017-01-17 17:44:56 -08:00
kvark
072ea09cfb Bug 1278199 - Reset viewport offset on SetDimensions and clamp to MAX_VIEWPORT_DIMS. r=jgilbert
--HG--
extra : rebase_source : 553fef64d3d8c04145a1c065c5b4217435a5f114
2017-01-10 14:15:00 -05:00
Jeff Gilbert
61b02e4fd7 Bug 1326159 - Update TF buffer restrictions. - r=daoshengmu
Update conformance2/buffers/bound-buffer-size-change-test.html to top-of-tree 2.0.0.

MozReview-Commit-ID: CgfP70Y0wul
2016-12-30 03:30:13 -08:00
Jeff Gilbert
0b065a7b71 Bug 1325301 (flattened) - Validate attribute base types match data base types. - r=bz,daoshengmu
Flattened with:
* Clean up generic vertex attribs. - r=bz,daoshengmu
* Remove EnsureAttrib() and friends. - r=daoshengmu
* Simplify EnumName behavior and usage and add ErrorInvalidEnumArg(). - r=daoshengmu
2016-12-29 02:46:46 -08:00
Jeff Gilbert
6cff55278b Bug 1325733 (flattened) - Mark read/draw calls better. - r=daoshengmu
Includes:
* ANGLE needs to call clear twice even on larger targets. - r=daoshengmu
2016-12-29 02:45:13 -08:00
Jeff Gilbert
3f9fc7d30d Bug 1325516 (flattened) - Misc fixes and simplify IMPL_COLOR_READ_FORMAT/TYPE and ensure that we only return valid ones. - r=daoshengmu 2016-12-25 13:44:49 -08:00
Jeff Gilbert
798acabef4 Bug 1325500 (flattened) - Fix DrawRangeElements impl and require size=4 for packed int types. - r=daoshengmu
MozReview-Commit-ID: B3YpgZn48Nl
2016-12-25 13:44:47 -08:00
Jeff Gilbert
ac2df6af8a Bug 1325476 - Use helper for Parameter[fi] funcs instead of maybeFloat/IntParam. - r=daoshengmu
MozReview-Commit-ID: 3jGFXfDNkPt
2016-12-25 13:44:38 -08:00
Jeff Gilbert
6091cfeb6e Bug 1312865 - ClearBuffer and similar funcs should mirror Clear's behavior. - r=daoshengmu
MozReview-Commit-ID: 4Gm5aNZ1PXX
2016-12-25 13:44:26 -08:00
Jeff Gilbert
8a9c965490 Bug 1324924 - Support ImageBitmap for Tex*Image*. (flattened) - r=bz,daoshengmu,mtseng
MozReview-Commit-ID: JzcbzeFHyHn
2016-12-20 19:24:25 -08:00
Jeff Gilbert
f7b2bc6226 Bug 1324598 - GENERATE_MIPMAP_HINT isn't queriable in Core Profiles. - r=daoshengmu
MozReview-Commit-ID: 6Z2MPmeFqv
2016-12-20 13:00:20 -08:00
Jeff Gilbert
7ca1cb79d0 Bug 1305832 - Move texture clearing code into WebGLTexture.cpp. - r=ethlin
MozReview-Commit-ID: 30UcfPZLYNz
2016-12-14 20:16:59 -08:00
Jeff Gilbert
49152faebc Bug 1305832 - ZeroTextureData doesn't need x/y/zOffset, so remove those args. - r=ethlin 2016-12-14 20:16:53 -08:00
Jeff Gilbert
1f193e4f38 Bug 1320030 - Handle program and shader object deletion differently. - r=ethlin
MozReview-Commit-ID: 4wSZ81lFP6e
2016-12-07 01:35:42 -08:00
Jeff Gilbert
51d744aa93 Bug 1320030 - Simplify marking and deletion checks. - r=ethlin 2016-12-07 01:35:28 -08:00
Jeff Gilbert
6e1880d435 Bug 1321450 - Fix Invalidate[Sub]Framebuffer. - r=ethlin
MozReview-Commit-ID: nrZP6E412k
2016-12-06 17:33:33 -08:00
Sylvestre Ledru
a951e92669 Bug 1320892 - Remove useless assertion (which is breaking the build with gcc 7.0 and --enable-warnings-as-errors) r=jgilbert
MozReview-Commit-ID: K0DWVA1Jbjb

--HG--
extra : rebase_source : 0ac99da066ac2b19d94ee2cb2e1455f852e6fabe
2016-11-29 11:19:04 +01:00
Jeff Gilbert (:jgilbert)
d570415e50 Bug 1250077 - Implement WEBGL_compressed_texture_astc. - r=ethlin
MozReview-Commit-ID: J2jB4tOJrTs
2016-11-28 18:12:32 -08:00
Jeff Gilbert (:jgilbert)
43a63d8e17 Bug 1310247 - Use pointers instead of references to prevent taking the address of temporary integers. - r=ethlin
MozReview-Commit-ID: FG1NsAs3iG0
2016-11-23 13:19:11 -08:00
Jeff Gilbert (:jgilbert)
38330f393b Bug 1310247 - Check if buffers are bound for transform feedback. - r=ethlin
MozReview-Commit-ID: 4EsOdz7vXNH
2016-11-23 13:19:07 -08:00
Jeff Gilbert (:jgilbert)
1a57a7121a Bug 1318507 - Update implementation. - r=ethlin 2016-11-22 23:59:24 -08:00
Wes Kocher
18726f190c Backed out changeset 6d906f5908d1 (bug 1316539) for gl2 failures a=backout 2016-11-22 11:22:56 -08:00
Chih-Yi Leu
3e6fcbfb79 Bug 1316539 - Add null pixel check in TexSubImage. r=jgilbert
--HG--
extra : rebase_source : c575f835bfdadf4a24e8e62bdd1ec10dcdda98e1
2016-11-21 20:28:00 +01:00
Boris Zbarsky
3815c83ef1 Bug 1317625. Stop using xpc::AccessCheck in WebGL code. r=jgilbert 2016-11-16 14:10:22 -05:00
Jeff Gilbert (:jgilbert)
b054199751 Bug 1308057 - Merge WebGLTimerQuery into WebGLQuery. - r=ethlin
MozReview-Commit-ID: 88b8DLd2uJ6
2016-11-14 14:04:41 -08:00
Jeff Gilbert (:jgilbert)
07cf1bd20c Bug 1306112 - Inline singly-used ValidateDataRanges. - r=ethlin
MozReview-Commit-ID: EmnhpsHMgu7
2016-11-11 19:03:16 -08:00