Commit graph

201 commits

Author SHA1 Message Date
Kelsey Gilbert
186c6dca7d Bug 1800301 - Reduce allocs and ptr-chasing in ScopedResolveTexturesForDraw. r=gfx-reviewers,lsalzman
+ Add inlining_vector<T,N>, like AutoTArray, but using std::vector for
  familiarity and safety.

Differential Revision: https://phabricator.services.mozilla.com/D162059
2022-11-15 04:11:16 +00:00
Narcis Beleuzu
0171c10fa3 Backed out changeset f5a6e0827824 (bug 1800301) for mochitest failure on WebGLContextDraw.cpp . CLOSED TREE 2022-11-12 21:18:23 +02:00
Kelsey Gilbert
02e71dba97 Bug 1800301 - Reduce allocs and ptr-chasing in ScopedResolveTexturesForDraw. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D161940
2022-11-12 18:48:06 +00:00
Kelsey Gilbert
0e8cb19c1c Bug 1779800 - Fix WebGL instancing in some cases on Mac. r=gfx-reviewers,lsalzman
This reverts the code that would collapse DrawElements to DrawArrays in some cases,
because it was not a correct transform in some cases.

Instead, we need to *always* keep around a cpu copy of the index buffer,
so that we can figure out how many fakeAttrib0 verts we need.

Finally, in order to correct for the bug where Mac offsets the base instance by `first` in DrawArrays,
we need to (temporarily) patch vertexAttribPointer offsets for any call with non-zero `first`.
(This can be disabled via MOZ_WEBGL_WORKAROUND_FIRST_AFFECTS_INSTANCE_ID=0)

Differential Revision: https://phabricator.services.mozilla.com/D157169
2022-09-15 00:47:03 +00:00
Jamie Nicol
556d4cfd0a Bug 1764589 - Remove vertex_array_object extension requirement for WebGL. r=gfx-reviewers,jgilbert
There are some Android devices which support GLES 2 but do not support
the vertex_array_object extension, and we therefore do not give them
WebGL 1.

This requirement was added in bug 1322746. as part of some changes to
GLBlitHelper which required VAOs. However, in bug 1396704 a fallback
path was added to GLBlitHelper which does not require VAOs. The WebGL
implementation can make use of the WebGLVertexArrayFake fallback path
on devices without VAO support, meaning this requirement can be
dropped.

Differential Revision: https://phabricator.services.mozilla.com/D145422
2022-05-25 11:38:01 +00:00
Jeff Gilbert
fa284e5717 Bug 1726265 - Prototype webgl draft ext OES_draw_buffers_indexed. r=lsalzman,emilio,webidl
Differential Revision: https://phabricator.services.mozilla.com/D122916
2021-08-27 01:47:14 +00:00
Butkovits Atila
477919f37c Backed out changeset a4a346ecefd7 (bug 1726265) for causing failures at test_2_conformance2__extensions__oes-draw-buffers-indexed.html. CLOSED TREE 2021-08-21 01:46:52 +03:00
Jeff Gilbert
28e862be2d Bug 1726265 - Prototype webgl draft ext OES_draw_buffers_indexed. r=lsalzman,emilio
Differential Revision: https://phabricator.services.mozilla.com/D122916
2021-08-20 20:59:54 +00:00
Cosmin Sabou
135d55cd7e Backed out changeset 24e0d3aa4ada (bug 1726265) for causing non-unified build bustage. CLOSED TREE 2021-08-20 04:29:04 +03:00
Jeff Gilbert
df78036187 Bug 1726265 - Prototype webgl draft ext OES_draw_buffers_indexed. r=lsalzman,emilio
Differential Revision: https://phabricator.services.mozilla.com/D122916
2021-08-20 00:05:06 +00:00
Jeff Gilbert
4121499edb Bug 1715690 - Generalize WebGL RENDERER into large buckets. r=lsalzman
+ Minor reduction in unused flexibility of limits.

Differential Revision: https://phabricator.services.mozilla.com/D117385
2021-06-14 21:27:08 +00:00
Butkovits Atila
c5dac06788 Backed out changeset 45887183c584 (bug 1715690) for causing failures at SanitizeRenderer. CLOSED TREE 2021-06-12 04:12:18 +03:00
Jeff Gilbert
de085c82e3 Bug 1715690 - Generalize WebGL RENDERER into large buckets. r=lsalzman
+ Minor reduction in unused flexibility of limits.

Differential Revision: https://phabricator.services.mozilla.com/D117385
2021-06-11 23:54:39 +00:00
Iulian Moraru
6dd0299bc3 Backed out changeset 67b696ec70a9 (bug 1715690) for causing build bustages on SanitizeRenderer.cpp. CLOSED TREE 2021-06-11 02:46:23 +03:00
Jeff Gilbert
22fa9e93cf Bug 1715690 - Generalize WebGL RENDERER into large buckets. r=lsalzman
+ Minor reduction in unused flexibility of limits.

Differential Revision: https://phabricator.services.mozilla.com/D117385
2021-06-10 22:55:50 +00:00
Jeff Gilbert
fa50c42c4b Bug 1656034 - Add UnderlyingValue() to mfbt. - r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D85495
2020-07-31 23:04:44 +00:00
Jeff Gilbert
f25a4cdbe8 Bug 1607940 - IPC TexImage. r=lsalzman,nika,handyman
Differential Revision: https://phabricator.services.mozilla.com/D83291
2020-07-21 22:57:01 +00:00
Jeff Gilbert
91ab854fc8 Bug 1617785 - Optimize GetDrawFetchLimits and vertexAttribPointer. r=lsalzman
Our goal here is to just be fast enough that we don't need to cache.

Differential Revision: https://phabricator.services.mozilla.com/D64215

--HG--
extra : moz-landing-system : lando
2020-02-26 00:44:26 +00:00
Jeff Gilbert
1abd55a851 Bug 1616715 - Make ReadPixelDesc per-call. r=lsalzman
GetSurfaceSnapshot (and similar) want to ReadPixels the backbuffer,
without having to navigate the GL PIXEL_PACK state.
Since this is cold cold code, it's nice to reduce the backend state by
making ReadPixelsDesc/PixelPackState per-call, and tracked by the
client. Arguably, PIXEL_PACK_BUFFER should be per-call as well.

Differential Revision: https://phabricator.services.mozilla.com/D63587

--HG--
extra : moz-landing-system : lando
2020-02-21 03:12:41 +00:00
Jeff Gilbert
b3e7d58623 Bug 1616457 - Fix failures in conformance/extensions/webgl-draw-buffers. r=lsalzman
We must not check frag output type agreement if colorMask(0,0,0,0).
We must allow drawing with no frag outputs, leaving color values
unchanged. (evidently this is used enough that we spec'd it this way?)

Differential Revision: https://phabricator.services.mozilla.com/D63287

--HG--
extra : moz-landing-system : lando
2020-02-19 20:47:30 +00:00
MahakBansal
d58f7fe1b6 Bug 1614148 - Removes unused variable 'kMinMaxColorAttachments' in WebGLContextValidate.cpp r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D62159

--HG--
extra : moz-landing-system : lando
2020-02-11 01:07:26 +00:00
Jeff Gilbert
e1d0fe64bb Bug 1477756 - Client-side bindings mirror for precise CC, and merge similar codepaths. r=handyman
* Context loss using RAII
* Move Program reflection Client-side

Depends on D54018

Differential Revision: https://phabricator.services.mozilla.com/D54019

--HG--
extra : moz-landing-system : lando
2020-01-08 22:19:16 +00:00
David Parks
198fa063c2 Bug 1477756 - Initial out-of-process WebGL implementation. r=mccr8,handyman
Splits WebGLContext into ClientWebGLContext and HostWebGLContext.  The Client enables the JS-control of a WebGL context in a content procecss while the Host executes the WebGL graphics operations (via a WebGLContext that maintains much of the existing code) in the compositor process.  At this point, the cross-process behavior is disabled -- this series of patches is an incremental step toward that final goal.

Differential Revision: https://phabricator.services.mozilla.com/D54018

--HG--
extra : moz-landing-system : lando
2020-01-08 22:19:14 +00:00
Gabriele Svelto
ace6d1063f Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442

--HG--
extra : moz-landing-system : lando
2019-12-06 09:24:56 +00:00
Dorel Luca
a381d5c96d Backed out changeset f6e53d1c6518 (bug 1600545) for Android build bustage. CLOSED TREE 2019-12-04 17:32:27 +02:00
Gabriele Svelto
bc9290f767 Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442

--HG--
extra : moz-landing-system : lando
2019-12-04 15:01:19 +00:00
Greyson Gilbert
03e40ae283 Bug 1560771 - Give proper line width range for core profile r=jgilbert
Because glLineWidth is deprecated in newer versions of core opengl,
we currently ignore lineWidth when using core profile.  We should
probably also make ALIASED_LINE_WIDTH_RANGE match this behavior to
lessen confusion.

Differential Revision: https://phabricator.services.mozilla.com/D41117

--HG--
extra : moz-landing-system : lando
2019-08-09 20:32:20 +00:00
Nicholas Nethercote
18fae65f38 Bug 1563139 - Remove StaticPrefs.h. r=glandium
This requires replacing inclusions of it with inclusions of more specific prefs
files.

The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.

Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.

Differential Revision: https://phabricator.services.mozilla.com/D39138

--HG--
extra : moz-landing-system : lando
2019-07-26 01:10:23 +00:00
Nicholas Nethercote
76f416f162 Bug 1562331 - Make webgl.* static prefs follow the naming convention. r=KrisWright
Also converts webgl.pref-16bpp from a VarCache pref to a normal pref, because
it doesn't need to be a VarCache pref.

Differential Revision: https://phabricator.services.mozilla.com/D36397

--HG--
extra : rebase_source : 5aa1d251b751c41ec525fef7d0467ffebe401d9a
2019-06-29 07:56:43 +10:00
Jeff Gilbert
9561417879 Bug 1541396 - Refactor (non-)transform-feedback binding/use checks. r=lsalzman
* Remove WebGLBuffer::SetSlot
* Make most bindBuffer calls lazy.
* Replace nsTArray with std::vector in WebGLVertexArray.

Differential Revision: https://phabricator.services.mozilla.com/D36274

--HG--
extra : moz-landing-system : lando
2019-06-30 01:29:42 +00:00
Ehsan Akhgari
4598c92440 Bug 1557409 - Part 2: Use WorkerPrivate objects to determine whether we should use fingerprinting resistance on worker threads; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D34208

--HG--
extra : moz-landing-system : lando
2019-06-10 19:32:05 +00:00
Jean-Yves Avenard
04a34db033 Bug 1550422 - P12. Convert Live gfxPrefs into StaticPrefs. r=jrmuizel
gfxPrefs Live preferences are almost identical to StaticPrefs.

We leave aside for now those that set a custom change callback as this feature isn't yet supported in StaticPrefs.

Differential Revision: https://phabricator.services.mozilla.com/D31256

--HG--
extra : moz-landing-system : lando
2019-05-26 14:29:42 +00:00
Gurzau Raul
967bc2a754 Backed out 31 changesets (bug 1552643, bug 1550422) for xpcshell crash on a CLOSED TREE.
Backed out changeset e30c1aa75529 (bug 1552643)
Backed out changeset caadcd7e02d3 (bug 1552643)
Backed out changeset aa7086ab09be (bug 1552643)
Backed out changeset 0b4029671710 (bug 1550422)
Backed out changeset a16295296035 (bug 1550422)
Backed out changeset 3b70307c0db5 (bug 1550422)
Backed out changeset 69df7818d4a3 (bug 1550422)
Backed out changeset d98dfc565927 (bug 1550422)
Backed out changeset 6f0997976944 (bug 1550422)
Backed out changeset 0edd264464c2 (bug 1550422)
Backed out changeset 9ea6da7a74ec (bug 1550422)
Backed out changeset f855f9309c8b (bug 1550422)
Backed out changeset 1033546224a7 (bug 1550422)
Backed out changeset ade7384c6186 (bug 1550422)
Backed out changeset 75b04de7e99c (bug 1550422)
Backed out changeset 91c3acdb2454 (bug 1550422)
Backed out changeset 77d2f80257d1 (bug 1550422)
Backed out changeset e0cd10d35327 (bug 1550422)
Backed out changeset 097091082423 (bug 1550422)
Backed out changeset 2f328853c1ab (bug 1550422)
Backed out changeset f92f2cc29cb1 (bug 1550422)
Backed out changeset 6dc82f88333d (bug 1550422)
Backed out changeset c20f66494d69 (bug 1550422)
Backed out changeset 2ba22cddeb6f (bug 1550422)
Backed out changeset 3aa72f89e295 (bug 1550422)
Backed out changeset ab4c4e806977 (bug 1550422)
Backed out changeset 72e5de040dda (bug 1550422)
Backed out changeset 7d3c2d486706 (bug 1550422)
Backed out changeset 132e0b8d8468 (bug 1550422)
Backed out changeset 54c85ac75dd0 (bug 1550422)
Backed out changeset d7ba4a18dd54 (bug 1550422)
2019-05-25 09:07:49 +03:00
Jean-Yves Avenard
af5790cf9b Bug 1550422 - P12. Convert Live gfxPrefs into StaticPrefs. r=jrmuizel
gfxPrefs Live preferences are almost identical to StaticPrefs.

We leave aside for now those that set a custom change callback as this feature isn't yet supported in StaticPrefs.

Differential Revision: https://phabricator.services.mozilla.com/D31256

--HG--
extra : moz-landing-system : lando
2019-05-25 00:03:32 +00:00
Jeff Gilbert
047e98938e Bug 1536672 - Implement WebGL OVR_multiview2 behind draft flag. r=lsalzman,qdot
Also disable clang-format for gfx/gl/GLConsts.h.

Differential Revision: https://phabricator.services.mozilla.com/D28168

--HG--
extra : moz-landing-system : lando
2019-05-23 20:48:21 +00:00
Mihai Alexandru Michis
354eec452c Backed out changeset a649f69f29df (bug 1536672) for failing crashtest at WebGLContextValidate.cpp. CLOSED TREE 2019-05-23 10:57:29 +03:00
Jeff Gilbert
fb7050f9bf Bug 1536672 - Implement WebGL OVR_multiview2 behind draft flag. r=lsalzman,qdot
Also disable clang-format for gfx/gl/GLConsts.h.

Differential Revision: https://phabricator.services.mozilla.com/D28168

--HG--
extra : moz-landing-system : lando
2019-05-23 02:43:11 +00:00
Gurzau Raul
74c555539e Backed out 28 changesets (bug 1550422) for marionette AssertionError and failing browser_policy_hardware_acceleration.js on a CLOSED TREE.
Backed out changeset 5dd10a365ba9 (bug 1550422)
Backed out changeset 529f5be01ab9 (bug 1550422)
Backed out changeset b6861d3badf8 (bug 1550422)
Backed out changeset 059cff1a3dde (bug 1550422)
Backed out changeset 6ada1116b241 (bug 1550422)
Backed out changeset ca67e8e45262 (bug 1550422)
Backed out changeset a1961a51ae44 (bug 1550422)
Backed out changeset 1c90b9cb3ad4 (bug 1550422)
Backed out changeset 285fa46e4f26 (bug 1550422)
Backed out changeset e2938a444234 (bug 1550422)
Backed out changeset 7a930fc51125 (bug 1550422)
Backed out changeset 898ed02804fe (bug 1550422)
Backed out changeset e1b7abc99ae9 (bug 1550422)
Backed out changeset f781d415cef6 (bug 1550422)
Backed out changeset 2fef10a7cce5 (bug 1550422)
Backed out changeset ea64b4d8d4ff (bug 1550422)
Backed out changeset 86a8ba1b755c (bug 1550422)
Backed out changeset 9c0c9e80f309 (bug 1550422)
Backed out changeset 10c153ddbaea (bug 1550422)
Backed out changeset 60fe635ec2c9 (bug 1550422)
Backed out changeset a38796266b28 (bug 1550422)
Backed out changeset 2db647dcdf1c (bug 1550422)
Backed out changeset 952ddac02972 (bug 1550422)
Backed out changeset ba46b53643ec (bug 1550422)
Backed out changeset ca47ef6c59f7 (bug 1550422)
Backed out changeset f45f471a1a40 (bug 1550422)
Backed out changeset 371b4da5b771 (bug 1550422)
Backed out changeset 02fc78890032 (bug 1550422)
2019-05-23 05:59:44 +03:00
Jean-Yves Avenard
2c0ce1b3ca Bug 1550422 - P12. Convert Live gfxPrefs into StaticPrefs. r=jrmuizel
gfxPrefs Live preferences are almost identical to StaticPrefs.

We leave aside for now those that set a custom change callback as this feature isn't yet supported in StaticPrefs.

Differential Revision: https://phabricator.services.mozilla.com/D31256

--HG--
extra : moz-landing-system : lando
2019-05-22 12:43:42 +00:00
Jeff Gilbert
7c1b76c6a8 Bug 1526027 - Remove webgl.bypass-shader-validation. r=lsalzman
Also remove extra plumbing from WebGLShaderValidator, moved directly
into WebGLShader.

Differential Revision: https://phabricator.services.mozilla.com/D31567

--HG--
extra : moz-landing-system : lando
2019-05-17 02:36:57 +00:00
Ehsan Akhgari
1bc926802f Bug 1547073 - Handle the case where the offscreen canvas has been disconnected from its owner global properly; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D29075

--HG--
extra : moz-landing-system : lando
2019-04-27 00:11:55 +00:00
Ehsan Akhgari
a006a2942c Bug 1532414 - Pass a document/principal pointer to nsContentUtils::ShouldResistFingerprinting() callers in the canvas API; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D22002

--HG--
extra : moz-landing-system : lando
2019-03-05 23:20:08 +00:00
Brindusan Cristian
079bc992c6 Backed out changeset ff14d3c64e53 (bug 1532414) for buid bustages at WebGLContextExtensions.cpp. CLOSED TREE 2019-03-06 00:31:41 +02:00
Ehsan Akhgari
5eb7746a81 Bug 1532414 - Pass a document/principal pointer to nsContentUtils::ShouldResistFingerprinting() callers in the canvas API; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D22002

--HG--
extra : moz-landing-system : lando
2019-03-05 12:42:51 +00:00
Jeff Gilbert
a14d2bd45e No bug - clang-format -p dom/canvas.
MozReview-Commit-ID: 2xylmA1yFvi
2019-02-07 14:50:14 -08:00
jgilbert@mozilla.com
a735e760d0 Bug 1372160 - Supply shader translator with es3 limits. r=lsalzman
MozReview-Commit-ID: CDeoT7UOWdB

Differential Revision: https://phabricator.services.mozilla.com/D18637

--HG--
extra : moz-landing-system : lando
2019-02-05 03:36:03 +00:00
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Tooru Fujisawa
7983faeb5d Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Gabriele Svelto
19e52bebd4 Bug 1510582 - Remove useless inclusions of Services.h r=erahm
Differential Revision: https://phabricator.services.mozilla.com/D13240

--HG--
extra : moz-landing-system : lando
2018-11-28 17:25:23 +00:00