|
d20afde4
|
2021-08-05T23:06:44
|
|
Vulkan: Retain precision of uniform variables
When gathering in a uniform block, the precision of default uniforms was
dropped.
Bug: angleproject:4889
Bug: angleproject:6132
Change-Id: Ie6a8e2e7cef7cd3808cee08d20f886fc4e762cd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076124
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6fe91881
|
2021-08-02T11:13:13
|
|
Translator: Simplify RecordConstantPrecision
Just before ESSL output, this transformation made some constants
specified through temp variables such that their precision can be
specified. This was done in cases where the precision actually affected
the expression being evaluated.
This transformation is simplified by declaring constants more
conservatively as variables, and not stringently attempting to identify
whether that's necessary. This is still not done in trivial cases.
This change is in preparation for another change that overhauls
precision propagation through the nodes. This change removes all
references to TIntermTyped::getPrecision() outside the precision
promotion code itself.
Bug: angleproject:4889
Change-Id: I135b2b3241aa2f76219b209241c3844f1d09ccd2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067948
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
09d5047b
|
2021-08-03T01:31:03
|
|
GL: Remove the rewriteVectorScalarArithmetic workaround
This workaround was implemented for a bug in Nvidia driver 387 which is
end-of-life. More recent driver branches (390 and 4XX) are fixed, and
so this workaround is no longer required. The implementation of the
workaround itself could introduce bugs.
Bug: chromium:772651
Bug: chromium:1201084
Change-Id: I3db179eb90d9124235bdad2daacc712302906d8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067952
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
b8d6f8aa
|
2021-07-22T22:31:29
|
|
Translator: Facilitate integration in FireFox
Instead of relying on is_apple to build workarounds applied on apple
hardware, a new build argument is added for this purpose. This allows
FireFox to more easily include these files in their build system (which
builds every workaround on every platform).
The workarounds are reorganized too and moved from tree_ops/gl/mac to
tree_ops/apple. RewriteRowMajorMatrices is moved there too as it's now
used by both gl and metal. This workaround is large, and removing it
from non-apple builds improves binary size (~40KB on Linux).
Bug: angleproject:6188
Change-Id: I8e1dab44d0235bb6b8341d53721bdd0d157d46c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047385
Reviewed-by: Jeff Gilbert <jgilbert@mozilla.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d7aa0130
|
2021-04-26T16:56:15
|
|
Upstream Apple's direct-to-Metal backend: compile translator.
This change is meant to merge the translator changes from Apple's
direct-to-Metal backend. Taken from Kyle Piddington's CL:
https://chromium-review.googlesource.com/c/angle/angle/+/2857366/
The goal of this CL is to merge the translator code in a state that
compiles, but not to switch the Metal backend over to use this
translator backend yet.
Bug: angleproject:5505
Change-Id: I68a6354604498cd5fd1eb96c13fc56f3b38f2bd0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897536
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
c2d1a464
|
2021-04-09T16:53:30
|
|
Translator: Track nameless interface block field indices in type
Fields of nameless interface blocks are stored as TVariables and
referenced through a TIntermSymbols (unlike named blocks which use
EOpIndexDirectInterfaceBlock with a constant field indices). With this
change, the field index is stored in the variable's type which let's the
TField of the TInterfaceBlock be directly accessible (and not need a
search by name).
This will be helpful in translation to SPIR-V as interface block members
are accessed by field index.
Bug: angleproject:4889
Change-Id: If3ab45b1e5f5f9576721dc52e2bdf1161882514f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818242
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
9f4b159b
|
2021-01-19T12:48:15
|
|
Translator: Avoid vector copies with multi-replacement
Turns push_backs into emplace_backs and changes the TIntermSequence
constructor argument to &&.
Bug: angleproject:5535
Change-Id: I640ce879b6ade48a28dea6385ebb7a95cb8304ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636680
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
f0286e63
|
2021-01-19T12:38:46
|
|
Translator: Stop allocating TIntermSequence
The functions that take a TIntermSequence always copy out / Swap the
contents away. This change makes all TIntermSequences live on the stack
instead of being newed.
Bug: angleproject:5535
Change-Id: I942f1c5e57b00199d5308183f71bd9e18b0608bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636679
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5e280545
|
2021-01-06T14:13:29
|
|
Move RegenerateStructNames AST transformation to gl/
This AST transformation is used by the chromium validating command
decoder on Linux/AMD/GL as well as MacOS.
Bug: chromium:1161513
Change-Id: I67e40215ae5576819ba5a58987ceb1776c86c731
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613195
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
382bf288
|
2020-12-24T23:56:39
|
|
Organize AST transforms per backend
Most of the AST transforms are written as a workaround to an issue that
affects a single backend. This change identifies such transforms and
organizes them by backend. They are then only built if the respective
backend is.
Additionally, about half of the GL transforms are due to mac
workarounds, including the large RewriteRowMajorMatrices transform.
Mac-specific workarounds are additionally only built on said platform.
This change reduces the ANGLE binary size:
- 106KB in a Vulkan-only build on Linux
- 27KB in a GL-only build on Android (60KB on Linux)
Bug: chromium:1084580
Bug: chromium:1161513
Change-Id: I64b334332c0d4f848756c6538af0d8d96864c7e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601346
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|