|
e3e7447a
|
2021-07-08T22:22:19
|
|
Vulkan: Fix flipXY for 180 degree prerotation and spec consts
The multiplier used for flipXY in this configuration was incorrect.
Bug: angleproject:5348
Bug: angleproject:5349
Bug: angleproject:5350
Change-Id: I0b3771f6a9da6ab2af02ed5ee5fe7b49d0415410
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016768
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7d023dac
|
2021-06-10T00:13:41
|
|
Vulkan: SPIR-V Gen: Basic support for fragment shaders
Fragment shader built-ins are implemented in this change and direct
SPIR-V generation for fragment shaders is enabled.
Bug: angleproject:4889
Change-Id: I6f92a5585f242122a81c97a9b1aa2763009161a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2951625
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
31641b8e
|
2021-06-05T02:17:47
|
|
Declare specialization constants in the AST
A new qualifier (EvqSpecConst) is added so that specialization constants
can be declared in tree.
This enables TVariable references to specialization constants to be
validated, which were in fact invalid as every reference declared a new
variable. That is fixed.
Bug: angleproject:4889
Change-Id: I1711e41cbc5a1260843d2d004d3568bdae11e963
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2941451
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@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>
|
|
58eabfd7
|
2021-04-08T23:57:04
|
|
Translator: Validate consistent variable references
Some transformations change variable declarations. This validation
ensures that all references to said variables are appropriately replaced
as well.
Bug: angleproject:2733
Change-Id: I6c2873968eeed4cba66e70069f84eb69a1f77074
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818140
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
b1deba2f
|
2021-01-28T16:06:51
|
|
Vulkan: Don't emit spec const declaration in compute shaders
Bug: angleproject:5070
Change-Id: I74becfeac88b4a8ff66dd36670792082d0b941cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2658882
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
bd2954a9
|
2021-01-16T11:33:12
|
|
Reland "Cleanup translator option checks"
This reverts commit 9173e01730923823846348e513bb8cbe7eddbbe5.
Reason for revert: This was in a chain of reverts, but is unrelated to the issue.
Original change's description:
> Revert "Cleanup translator option checks"
>
> This reverts commit 9710c4e473c88a38f11eb10c600717181d6e24df.
>
> Reason for revert:
> Earlier CL breaks pre-rotation:
> https://chromium-review.googlesource.com/c/angle/angle/+/2598584
>
> Original change's description:
> > Cleanup translator option checks
> >
> > Use comparison with 0 for explicit conversion to bool.
> >
> > Bug: angleproject:3606
> > Change-Id: Ie0a76d7df829227c1376894535813b54e13491b4
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2631689
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Charlie Lao <cclao@google.com>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
>
> TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
>
> Change-Id: Ib597a62f3c7078d28f7f5b79d1cc9f8d9e469c31
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:3606
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634047
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Bug: angleproject:3606
Change-Id: I10ecca63a3db6dbc3ddedf5bb7e5319a82a80a30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633712
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dfd9bdfd
|
2021-01-16T11:32:30
|
|
Reland "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
This reverts commit 3d39b7c5eab88c420d982155ffbb6181c678ceea.
Reason for revert: Fixed interaction with the
`forceDriverUniformOverSpecConst` workaround.
Original change's description:
> Revert "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
>
> This reverts commit 0f86b196ffaffeeee3460e3188f20a7ac120796d.
>
> Reason for revert:
> Breaks pre-rotation for all apps, so they are displayed in portrait instead of landscape.
>
> Original change's description:
> > Vulkan: Generate gl_Position pre-rotation in SPIR-V
> >
> > Instead of having the translator output pre-rotation code in the vertex
> > stage based on a specialization constant, this change makes the SPIR-V
> > transformer perform pre-rotation of gl_Position on the last geometry
> > stage.
> >
> > An alternative solution would be to generate pre-rotation code in the
> > translator in every geometry stage, each controlled by a separate
> > specialization constant. This change avoids unnecessary modifications
> > to earlier stages. The generated shaders are also smaller, as they
> > don't contain a mat2[8] pre-rotation constant matrix. The SPIR-V
> > transformer knows the pre-rotation at transformation time, so it can
> > simply use swizzles to achieve the same results.
> >
> > This also ties in with upcoming changes which move gl_Position.z
> > correction to the last geometry shader stage, which is trivially done
> > piggy-backing on the infrastructure in this change.
> >
> > Bug: angleproject:5478
> > Change-Id: I9d5d9d19f3ccda665f5504368ce5ddfa5f383faf
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598584
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Charlie Lao <cclao@google.com>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
>
> TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
>
> Change-Id: I81f237fa6b10c7d59831363bee8999e7ad2f09be
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:5478
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633694
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Bug: angleproject:5478
Change-Id: I7c5eaeef03d9520abd36a1c4a766b6abbf4fdb45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633709
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3d39b7c5
|
2021-01-16T00:15:14
|
|
Revert "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
This reverts commit 0f86b196ffaffeeee3460e3188f20a7ac120796d.
Reason for revert:
Breaks pre-rotation for all apps, so they are displayed in portrait instead of landscape.
Original change's description:
> Vulkan: Generate gl_Position pre-rotation in SPIR-V
>
> Instead of having the translator output pre-rotation code in the vertex
> stage based on a specialization constant, this change makes the SPIR-V
> transformer perform pre-rotation of gl_Position on the last geometry
> stage.
>
> An alternative solution would be to generate pre-rotation code in the
> translator in every geometry stage, each controlled by a separate
> specialization constant. This change avoids unnecessary modifications
> to earlier stages. The generated shaders are also smaller, as they
> don't contain a mat2[8] pre-rotation constant matrix. The SPIR-V
> transformer knows the pre-rotation at transformation time, so it can
> simply use swizzles to achieve the same results.
>
> This also ties in with upcoming changes which move gl_Position.z
> correction to the last geometry shader stage, which is trivially done
> piggy-backing on the infrastructure in this change.
>
> Bug: angleproject:5478
> Change-Id: I9d5d9d19f3ccda665f5504368ce5ddfa5f383faf
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598584
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: I81f237fa6b10c7d59831363bee8999e7ad2f09be
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:5478
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633694
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9173e017
|
2021-01-16T00:10:34
|
|
Revert "Cleanup translator option checks"
This reverts commit 9710c4e473c88a38f11eb10c600717181d6e24df.
Reason for revert:
Earlier CL breaks pre-rotation:
https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Original change's description:
> Cleanup translator option checks
>
> Use comparison with 0 for explicit conversion to bool.
>
> Bug: angleproject:3606
> Change-Id: Ie0a76d7df829227c1376894535813b54e13491b4
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2631689
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: Ib597a62f3c7078d28f7f5b79d1cc9f8d9e469c31
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3606
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634047
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9710c4e4
|
2021-01-14T22:41:48
|
|
Cleanup translator option checks
Use comparison with 0 for explicit conversion to bool.
Bug: angleproject:3606
Change-Id: Ie0a76d7df829227c1376894535813b54e13491b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2631689
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0f86b196
|
2020-12-21T22:54:05
|
|
Vulkan: Generate gl_Position pre-rotation in SPIR-V
Instead of having the translator output pre-rotation code in the vertex
stage based on a specialization constant, this change makes the SPIR-V
transformer perform pre-rotation of gl_Position on the last geometry
stage.
An alternative solution would be to generate pre-rotation code in the
translator in every geometry stage, each controlled by a separate
specialization constant. This change avoids unnecessary modifications
to earlier stages. The generated shaders are also smaller, as they
don't contain a mat2[8] pre-rotation constant matrix. The SPIR-V
transformer knows the pre-rotation at transformation time, so it can
simply use swizzles to achieve the same results.
This also ties in with upcoming changes which move gl_Position.z
correction to the last geometry shader stage, which is trivially done
piggy-backing on the infrastructure in this change.
Bug: angleproject:5478
Change-Id: I9d5d9d19f3ccda665f5504368ce5ddfa5f383faf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c75473c2
|
2020-11-23T14:26:32
|
|
Vulkan: Generalize FlipRotationSpecConst to SpecializationConstant
Specialization constant are used not just for flip/rotation. It also
used for other things. This CL merges all specialization constant usage
(lineRasterEmulation, flip, rotation, halfRenderArea) into one class and
rename FlipRotationSpecConst to SpecConst.
Bug: b/173800146
Change-Id: I8dc3354b6caedbb183cec29855fc1c301ec8872a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2555812
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|