|
25390156
|
2025-08-21T00:13:19
|
|
Suppress unsafe buffers on a file-by-file basis in src/ [1 of N]
In this CL, we suppress many files but stop short of actually
enabling the warning by not removing the line from the
unsafe_buffers_paths.txt file. That will happen in a follow-on
CL, along with resolving any stragglers missed here.
This is mostly a manual change so as to familiarize myself with
the kinds of issues faced by the Angle codebase when applying buffer
safety warnings.
-- Re-generate affected hashes.
-- Clang-format applied to all changed files.
-- Add a few missing .reserve() calls to vectors as noticed.
-- Fix some mismatches between file names and header comments.
-- Be more consistent with header comment format (blank lines and
trailing //-only lines when a filename comment adjoins license
boilerplate).
Bug: b/436880895
Change-Id: I3bde5cc2059acbe8345057289214f1a26f1c34aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6869022
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dc9fb800
|
2025-07-08T16:59:33
|
|
ComputeShaderTestES3.NotSupported: Skip if ES 3.1+
The test ComputeShaderTestES3.NotSupported requires that the context
version is exactly OpenGL ES 3.0. However, if the system EGL does not
support the ANGLE extension
EGL_ANGLE_create_context_backwards_compatible, the maximum conformant
version the display supports will be returned instead. This causes the
test to fail, because OpenGL ES 3.1+ contexts *do* support creating
compute shaders.
Skip the test when testing the system EGL if the context version is
3.1+. Only skip when testing the system EGL, so we still fail if the
context version is not exactly 3.0, since that's (likely) a bug.
Bug: b/279980674
Change-Id: I38090d7f562c7760f2c1b1c3211d1e622b0e0ad4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6715721
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
b6579180
|
2025-05-15T15:29:28
|
|
Add test case for CS writes without barriers
* Added the following test to ComputeShaderTest:
WriteToSeparateSSBOComponentsWithoutExplicitBarrier
* Based on KHR-GLES31 test:
.core.shader_storage_buffer_object.advanced-switchBuffers-cs
* It involves writing to different components of an SSBO without
explicit barriers in between.
Bug: b/417769912
Change-Id: I9f6170937c9ccf3487d8f9e7758196c950252ea3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6552162
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
73dabb85
|
2025-04-29T12:39:12
|
|
Add end2end test for AdvancedSyncVertexArray
This is just a port of the upstream test:
KHR-GLES31.core.shader_image_load_store.advanced-sync-vertexArray
Test: ComputeShaderTest.AdvancedSyncVertexArray
Bug: b/416573908
Change-Id: Id04af0a7efa667b7afc8061a9ccaa044e709fe1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6496293
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
d193d51b
|
2024-06-17T22:46:08
|
|
Replace issue ids post migration to new issue tracker
This change replaces anglebug.com/NNNN links.
Bug: None
Change-Id: I8ac3aec8d2a8a844b3d7b99fc0a6b2be8da31761
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637912
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b3ab67d3
|
2024-03-14T15:06:02
|
|
tests: Remove unnecessary .get() from RAII objects
Bug: chromium:40942995
Change-Id: I82509869bce3ad8f51811188fe04267f2de04786
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5370904
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0ea24ef2
|
2024-01-26T16:50:39
|
|
Unsuppress passing tests
Bug: angleproject:3871
Bug: angleproject:3872
Bug: angleproject:3879
Bug: angleproject:4686
Bug: angleproject:4704
Bug: angleproject:4718
Bug: angleproject:4721
Bug: angleproject:4792
Bug: angleproject:5086
Bug: angleproject:5313
Bug: angleproject:6109
Change-Id: I0d0f88a388cd2f19da99a7defd0ab8d98db0e6e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5241306
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d4756a94
|
2023-08-29T15:26:15
|
|
D3D11: Fix register index of read-only storage images
On D3D11 read-only storage images should consume SRV registers ("t")
instead of UAV registers ("u"), so baseUAVRegister shouldn't be
related to read-only storage images.
fixed: angleproject:4404
Bug: angleproject:7121
Change-Id: I3ca35497992de599d0427fae10d750aff7cf7d9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4819797
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
33472e77
|
2023-08-30T09:45:43
|
|
D3D11: Fix the compilation of vertex shader with storage image
This patch adds the missing declaration of storage images in vertex
shader. With this patch the vertex shaders with storage image
declarations can be correctly compiled on D3D11 backends.
Bug: angleproject:7121
Change-Id: I32b8c632df83a64a34318e9668e9aa8d376cca56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4819792
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e60f64dd
|
2023-05-31T17:02:22
|
|
D3D11: fix for atomic assigned to an SSBO.
When assigning the previous value of an atomic op to an SSBO, we do not
want to use the "direct assignment" path, since we can't pass the SSBO
expression as an argument to Interlocked*().
Instead, we change the RewriteAtomicFunctionExpressions transform not to
defer assignments until HLSL output if the LHS is an SSBO expression,
and to do its usual creation of a temporary for the previous value of
the atomic op.
In OutputHLSL, we skip the direct assignment path if the LHS is an SSBO
expression.
Bug: angleproject:8182
Change-Id: I0707f4f69757119fe5c8f8e7a12bd26025ec74e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4573827
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
29abd5a2
|
2023-03-06T11:35:45
|
|
Explicitly Add Aliased Memory Decoration in SpirV
In GLSL, aliased memory qualifier is implicitly available,
unless we explicitly specify the memory is restrict:
https://www.khronos.org/opengl/wiki/Type_Qualifier_(GLSL)#Memory_qualifiers.
However, in SpirV, aliased memory qualifier has to be
explicitly specified:
https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#AliasingSection
This change adds the aliased memory decorations to SSBO
if the GLSL does not specify the restrict memory qualifier.
This is a temporary workaround to fix the deqp test failures
on some android devices. Eventually we would like to waive this
test for ANGLE due to alised memory in Vulkan does not suppose
to affect SSBOs that have different set/binding, please refer
to this Khronos ticket for more details:
https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4321
Bug: b/266235549
Change-Id: Ic7afc417a5d421664b60e0413a011314787e14e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4312130
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2662f28f
|
2022-12-30T17:26:22
|
|
Vulkan: Fix imageRead from RP and outsideRP simultaneously
When a texture is been sampled from both fragment shader and compute
shader, you will have the same VkImageLayout. We will not try to end
renderPass, which means you end up running into similar situations with
OutsideRenderPassCommandBufferHelper::bufferRead where an image is
already read accessed by a started renderPass and now read accessed by
an outsideRenderPassCommands. Since renderPass has greater queueSerial,
we should not tag it with outsideRenderPassCommands' queueSerial.
This CL also adds two tests, one for color texture and another for
depth texture (which is car_chase uses). Both exposes the same bug.
Bug: angleproject:7916
Change-Id: I840ca8947caeb7a96c4c9ccb7c9eca2476837c9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4133548
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
19fb11b6
|
2022-10-14T11:12:20
|
|
Vulkan: Merge warmed up compute cache into renderer
It was done for graphics, but was accidentally missing for compute.
Bug: angleproject:5881
Bug: angleproject:7629
Change-Id: I28a4c2e38b07b08e1636b443f2c0963130965ebb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956496
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
89e38b57
|
2022-06-22T15:04:08
|
|
Refactor to use ANGLETest vs ANGLETestWithParam
Bug: angleproject:6747
Change-Id: I72ad52d0268eae0e1a401f12f3e94cc5efa402f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719002
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
2fdd7bfd
|
2022-05-17T13:31:58
|
|
Vulkan: Support binding 2D slice of a 3D texture to an image unit
Support binding a 3d texture as a 2d texture by specifying that it is
non-layered during glBindImageTexture and expose support for
EGL_KHR_gl_texture_3D_image when VK_EXT_image_2d_view_of_3d vulkan
extension is supported.
Tests: ComputeShaderTest.BindImageTexture3D
dEQP-GLES31.functional.image_load_store.3d.*single_layer
Bug: angleproject:7320
Change-Id: Ie2f0dfcdf302a4aa58990f74329ca36e62cd3902
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3648586
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3d55cf0c
|
2021-12-30T11:27:26
|
|
Vulkan: Optimize the vkImage layout when used as GL_image
If one vkImage has been used as GL_image in compute shader and as
a GL_texture in fragment shader, no dependencies are needed for the
fragment shader and other pre-fragment graphics shaders, like
vertex/tess/geom.
If we only assign the vkImage layout as writable when running GL
executables that have Image Textures, we can specify more precise
read-only barriers when running read-only GL executables.
Bug: angleproject:6862
Change-Id: Iff37fdce13fea637751899253e535bf3f6663200
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3366014
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
3b38b379
|
2022-04-20T10:44:24
|
|
Vulkan: Add feature avoid HOST_VISIBLE and DEVICE_LOCAL combination
Discrete GPUs device local memory usually is not CPU accessible. This
adds a feature flag to control that.
Fixed bug in BufferVk that when mapRangeImpl is called from angle
internal, unmapImpl was using front end mapping parameters that is
incorrect. We have to cache the mapping parameters in the backend to
hangle the mapRangeImpl/unmapImpl calls from internal.
Fixed the test bug in ComputeShaderTest.BufferImageBufferMapWrite that
we are calling glMapBufferRange with GL_MAP_READ_BIT but are actually
writing to the map pointer. This should result in undefined behavior per
spec.
Fixed the test bug in GLSLTest.* that VerifyBuffer calls
glMapBufferRange, but was giving incorrect length which result in data
only been partially copied. This bug was hidden due to previously all
buffers are CPU accessible and there is no copy needed.
Fixed the test bug in ReadPixelsPBOTest.* and ReadPixelsPBONVTest.* that
calls glMapBufferRangeEXT, but was giving incorrect length which result
in data only been partially copied. This bug was hidden due to
previously all buffers are CPU accessible and there is no copy needed.
Added new skipped syncval messages. Because this CL triggers a
copyToBuffer call for some of the buffers and that changes the syncval
message signature for the same reasons (i.e, feedback loop or synval
does not know the exact range of buffer been used for vertex buffers
etc).
Bug: angleproject:7047
Change-Id: I28c96ae0f23db8e5b51af8259e5b97e12e8b91f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3597711
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
6b94a71c
|
2022-04-01T10:12:07
|
|
Vulkan: Lift SwS suppressions.
Bug: angleproject:4092
Change-Id: I0e72b95ba5ba2b60420d5b685349c405864c2e6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3563513
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@google.com>
|
|
bcd3ae61
|
2021-10-18T09:36:49
|
|
Fix some instances of -Wshadow.
Bug: chromium:794619
Change-Id: I5efe04e64800455585438467bcf6c262e91f398d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3229095
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f3d5dac3
|
2021-08-23T17:25:15
|
|
Vulkan: SPIR-V Gen: Drop dependency to glslang
The SPIR-V gen path is now made default. Compilation through glslang is
still supported for debugging, and is enabled on the GLSL* end2end tests
for smoke testing. On release builds, glslang is not supported.
To test with glslang, add the following gn arg (only necessary if dcheck
is disabled):
angle_enable_spirv_gen_through_glslang = true
Then enable the generateSPIRVThroughGlslang feature. This can be done
by setting an environment variable:
ANGLE_FEATURE_OVERRIDES_ENABLED=generateSPIRVThroughGlslang ./angle_deqp_gles2_tests
Binary size saving:
- 1.3MB on Linux (SPIR-V gen itself: 240KB)
- 730KB on Android (SPIR-V gen itself: 140KB)
Perf tests:
- LinkProgramBenchmark.Run/vulkan_compile_single_thread
* Through glslang:
truncated mean: 1287033.36
* Direct SPIR-V Gen:
truncated mean: 244495.91 (~80% reduction)
- LinkProgramBenchmark.Run/vulkan_compile_multi_thread
* Through glslang:
truncated mean: 4565894.83
* Direct SPIR-V Gen:
truncated mean: 1158164.10 (~75% reduction)
Bug: angleproject:4889
Bug: angleproject:6210
Change-Id: I486342702977c8114e90073b97183aba115a8b2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115140
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
43be4d9c
|
2021-10-11T13:50:28
|
|
Vulkan: Fix unnecessary performance warnings for two tests
Fix two existing tests so that it wont generate performance
warnings that is not related to the test and not intended anyway.
Bug: b/200067929
Change-Id: I64a9272be077c536627644ae44104d98cecee7cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3218270
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
5812f66e
|
2021-10-08T16:21:13
|
|
OpenGL: Lift image buffer windows/intel suppresions
Bug: angleproject:3536
Change-Id: Ib342caca706347ba4ff0cf82f0ea580907e5bb33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213304
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e437c4ad
|
2021-09-22T09:15:19
|
|
Vulkan: Only preserve buffer data when BufferVk has valid data
When we receive glBufferSubData call and GPU is still accessing the
buffer, we have two code paths to update data. If subData is more than
half of the entire buffer range, we choose to acquire a new buffer and
use DMA to copy the rest of buffer that outside of subData range from
the old buffer back to the new buffer so that existing buffer data is
being preserved. Otherwise we stage subData to use GPU buffer to buffer
copy later on when buffer is been used. The reasoning behind is to
minimize the amount of data copy. The improvement here is that if
previously app called glBufferData with null pointer, we really do not
have any valid data in the buffer and there is no need to preserve the
existing buffer data. This CL tracks whether buffer has any valid data
or not and also put this into consideration when we pick which code path
to go. We also use this information to avoid preserve the existing data
in BufferVk::acquireAndUpdate
Bug: b/200067929
Change-Id: I266dd93bed2d3c07e3a5af3e4e613e7f6023b393
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3176500
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
5ab152c6
|
2021-10-04T14:08:15
|
|
Vulkan: Add tests that triggers acquireAndUpdate
Add test for shader storage write followed by bufferSubData Add test for
image store followed by bufferSubData.
Bug: b/200067929
Change-Id: I5895eaa31ee54e79333f0fe26d92e9378f427a3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2553171
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
57d59e83
|
2021-09-07T17:41:11
|
|
Vulkan: Add ResourceWrite to track Read and Write Access
vk::Resource currently only tracks accesses in general, not which type
of access is being performed. This CL adds the new class ResourceWrite
to track whether the access is a Read or Read/Write access and when
the access completes.
This allows a follow-on CL to know when a buffer is being written to by
the GPU or if the GPU is only reading from a buffer. Tracking write
accesses to buffers is required when attempting to "Ghost" (duplicate)
GPU-read-only buffers to prevent breaking the render pass when the CPU
maps the buffer memory.
Bug: angleproject:5971
Test: ComputeShaderTest.ImageBufferMapWrite
Change-Id: I965e3e75730719ccce77334744ae4feae33c6101
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3146319
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
81ed8d40
|
2021-07-02T00:54:25
|
|
Vulkan: SPIR-V Gen: Support barrier* built-ins
This change enables the ComputeShaderTest suite and additionally
includes the following fixes:
- OpArrayLength was given the array type instead of variable.
- Struct arrays inside interface blocks were not decorated with
ArrayStride.
Bug: angleproject:4889
Change-Id: Ibae95371bcea10e58c86b8fe1d1e172a18d56a09
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3001908
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6746e5dd
|
2021-06-01T22:48:14
|
|
Vulkan: SPIR-V Gen: Basic support for compute shaders
This change enables direct SPIR-V generation for compute shaders and
enables a few tests. A handful of built-in functions are translated to
support said tests.
Bug: angleproject:4889
Change-Id: I8fd6dc50ff31559a738ba680a993fb197e29fcf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939330
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
0c77f3ad
|
2021-03-10T15:58:00
|
|
Vulkan: Implement shader buffers descriptor cache.
Implements a descriptor set cache for UBOs, SSBOs, and atomic counter
buffers. Storage Images and framebuffer fetch input attachments are
not yet included. Requires moving the buffer barrier handling into
ContextVk, similarly to how we handle the barriers for Textures.
The packed description key for the descriptors uses a "fast" vector
with a basic minimum size. For most cases of a few buffers this will
fit easily in stack memory, but for larger programs with many buffers
we fit this into heap memory. The key has a large upper bound due to
the high ES 3.2 requirements and the need to index several values such
as the offset and binding size.
We use dynamic offsets for uniform buffers when possible. This ensures
applications like Manhattan 3.1 that use sets of common buffers with
changing offsets hit the cache most of the time.
Because of resource limits we pick at compilation time whether to use
dynamic or static descriptor sets. Mostly this applies to tests that
use a large number of uniform buffers. A future implementation could
be smart and would recompile the program with heuristics to use a
minimal number of dynamic indices.
Reduces the number of descriptor set updates from ~300 -> ~30 per frame
in Manhattan 3.1 and in Asphalt 9 from 900+ to as low as 0 per frame.
Bug: angleproject:5736
Change-Id: I5c2a3881bec90d301dab15cc86c8a70e60674ad7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757515
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ba7531da
|
2021-04-07T12:51:17
|
|
Add tests that use, then update, then use buffers
This triggers vk::DynamicBuffer allocations in BufferVk.
Bug: angleproject:5719
Change-Id: Ida855b23618497f76102e55f89ab1678f9c08753
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809856
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ba0bd785
|
2021-03-15T16:00:33
|
|
Fix the assert error and inbalence parens for SSBO
This PR strengthens below two cases:
1. Support calculate unsized array size for any type. Previously,
it reported error when the type was a structure.
2. Correctly add the right paren for store function when any
load/length functions are nested in it.
Bug: angleproject:5734
Change-Id: I3428fa35f1481275e1d193094ceddb011f747cf1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2762655
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
a6b16d29
|
2021-03-02T19:04:57
|
|
Suppress UNINSTANTIATED_PARAMETERIZED_TEST failures on Ozone
We only support ES2 on Ozone, so tests that depend on ES3 or ES31
support are not instantiated there.
Bug: chromium:1183147
Change-Id: Id58bcd9b44a5b9a70b5ae8115e27c44f5dc81226
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2726550
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d7037aa2
|
2021-02-11T14:35:30
|
|
Vulkan: noop glMemoryBarrier(CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT)
CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT requires a memory barrier: shader
buffer write -> host read. According to the spec, the data is only
available after a call to glFinish or wait on sync:
> The application must call MemoryBarrier with the
> CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT set and then call FenceSync with
> SYNC_GPU_COMMANDS_COMPLETE (or Finish). Then the CPU will see the
> writes after the sync is complete.
When a buffer is written to by the GPU, ANGLE calls
onHostVisibleBufferWrite(), which ensures a "memory write -> host read"
barrier is issued at the end of the command buffer.
Additionally, persistently mapped buffers use
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, so there's no need for a call to
vkInvalidateMappedMemoryRanges.
As a result, there's nothing necessary in ANGLE to do for this barrier
bit. Note that should persistenly mapped buffers start using
non-coherent memory, this barrier should imply a call to
vkInvalidateMappedMemoryRanges for the persistently mapped buffers.
Bug: angleproject:5070
Change-Id: Iaeae019dadfa659a47d2dac41c0c09f1c15e584b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2689380
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
186fe990
|
2021-01-15T15:49:30
|
|
Vulkan: Redo RewriteAtomicCounters
With MonomorphizeUnsupportedFunctionsInVulkanGLSL and
RewriteArrayOfArrayOfOpaqueUniforms transformations run, it is no longer
possible to encounter array of array of atomic counters, or have any
passed to functions. As a result, RewriteAtomicCounters is greatly
simplified. Additionally, it is no longer necessary to pass
binding/offset information for atomic counters around and they can use
constants. This change removes dependency on the
shaderStorageBufferArrayDynamicIndexing Vulkan feature.
Bug: angleproject:3726
Bug: angleproject:3881
Change-Id: Ia43092a668f60d009eccbbceeed5deaf105a5895
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633687
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a4b582e8
|
2021-01-11T15:31:13
|
|
Vulkan: Notify ContextVk when UtilsVk binds compute pipelines
This issue was fixed for graphics pipelines (in
UtilsVk::clearFramebuffer), but remained for compute pipelines. If
UtilsVk issues a dispatch call, it now notifies ContextVk to rebind the
pipeline and descriptor sets.
Bug: angleproject:5529
Change-Id: Ic52f91bdc70d02c065ec2d5e2a3614c11fd62a9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622236
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
54d95994
|
2020-12-09T09:36:00
|
|
Enable ComputeShaderTest/DrawDispatchDispatchDraw on Intel/Win/Vulkan
This patch enables ComputeShaderTest/DrawDispatchDispatchDraw on
Intel/Win/Vulkan after the upgrade of Chromium try bots.
Bug: angleproject:3871
Change-Id: I3e8d36020cbb01304a7b024d5b74923640402b4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580112
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
61a117fa
|
2020-11-16T12:48:11
|
|
Vulkan: Fix aliasing format for non-layered image bindings
This was correctly handled for layered bindings by the change
anglebug.com/3885#c20. This change uses the same mechanism for
non-layered bindings.
Bug: angleproject:5347
Change-Id: Ida55b3589d0bdbe5d824c1614c9bf9f867a7f652
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2541182
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fa616931
|
2020-09-03T14:58:03
|
|
Mark uniform samplers in an array unused per element
https://bugs.webkit.org/show_bug.cgi?id=215630
Fix an issue with the OpenGL backend where entire arrays of
uniforms would be marked as unused if a single element was
reported as unused by the driver.
Bug: angleproject:5006
Change-Id: I9bbb75a5f113472393e8d9f1fb60a7865aa9529a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2486540
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
e815afbf
|
2020-09-07T22:09:22
|
|
First pass at increasing inclusivity
Link to the inclusivity rules
https://source.android.com/setup/contribute/respectful-code
Bug: b/162834212
Bug: chromium:1097198
Change-Id: Ied5a9e3879d72bff3f77ea6fcda9b82f30c32c2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396737
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Trevor Black <vantablack@google.com>
|
|
f0b0e3e8
|
2020-09-22T19:35:58
|
|
Suppress two more compute shader tests.
Failing due to test ordering on Linux. Likely a driver bug
that's already fixed in ToT Mesa.
ComputeShaderTest.DispatchDrawDrawDispatch/ES3_1_OpenGL
ComputeShaderTest.DrawDispatchDrawPreserve/ES3_1_OpenGL
Bug: angleproject:5072
Change-Id: I857ef3c7ba5d97f7c619ebe37aec1b5e188a2ffd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2424682
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
566821cb
|
2020-09-21T23:57:13
|
|
Suppress 3 more Intel/GL/Compute shader fails.
Happen when run in different orders. This time with a test variation
with 2 shards instead of 4.
ComputeShaderTest.DrawTexture1DispatchTexture2/ES3_1_OpenGL
ComputeShaderTest.UniformBuffer/ES3_1_OpenGL
ComputeShaderTest.BindImageTextureWithMixTextureTypes/ES3_1_OpenGL
Bug: angleproject:5072
Change-Id: Iddec2b795dc380e29a0124195491fcf6ec0520bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2423208
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a87964cd
|
2020-09-20T21:59:23
|
|
Suppress Linux GL Compute Tests on Intel.
ComputeShaderTest.AtomicFunctionsInNonInitializerSingleAssignment/ES3_1_OpenGL
ComputeShaderTest.AtomicFunctionsInitializerWithUnsigned/ES3_1_OpenGL
ComputeShaderTest.AtomicFunctionsNoReturnValue/ES3_1_OpenGL
ComputeShaderTest.AtomicFunctionsReturnWithMultipleTypes/ES3_1_OpenGL
ComputeShaderTest.AtomicFunctionsReturnWithUnsigned/ES3_1_OpenGL
ComputeShaderTest.DispatchDraw/ES3_1_OpenGL
ComputeShaderTest.DrawDispatchDispatchDraw/ES3_1_OpenGL
ComputeShaderTest.LoadImageThenStore/ES3_1_OpenGL
ComputeShaderTest.NonArraySharedVariable/ES3_1_OpenGL
ComputeShaderTest.NonStructArrayAsSharedVariable/ES3_1_OpenGL
ComputeShaderTest.StoreImageThenLoad/ES3_1_OpenGL
ComputeShaderTest.StructArrayAsSharedVariable/ES3_1_OpenGL
ComputeShaderTest.UniformDirty/ES3_1_OpenGL
ComputeShaderTest.groupMemoryBarrierAndBarrierTest/ES3_1_OpenGL
GLSLTest_ES31.ArraysOfArraysImage/ES3_1_OpenGL
GLSLTest_ES31.MixOfAllResources/ES3_1_OpenGL
LinkAndRelinkTestES31.RelinkProgramSucceedsFromRenderingToCompute/ES3_1_OpenGL
Bug: angleproject:5072
Change-Id: I506c931d7e8714e0393fb5a7b9671b2fc74caeee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2420332
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
a0d048a4
|
2020-08-27T12:03:02
|
|
Vulkan: Fool-proof usage of GL and VK level indices
Using boxed types, this change allows the compiler to catch errors when
a level index in one space (e.g. GL) is mistakenly used in another space
(e.g. VK).
This change uncovered a number of bugs due to such mistakes which are
fixed.
Mistakes are still possible when the index is explicitly extracted, for
example to be given to a Vulkan command, or when it's created, for
example when retrieved from gl::ImageIndex::getLevelIndex. Future work
can include using gl::LevelIndex in gl::ImageIndex directly to alleviate
the latter at least.
Bug: angleproject:4880
Change-Id: I6427c68c3bc096f771402f51c8554d8171758aa9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380232
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
12b6a82e
|
2020-04-03T18:31:22
|
|
No-Op draws when no active VS and/or FS is present
Re-land CL with WebGL fixes:
This required some extra pointer checking during validation to handle
the fact that a Program and/or ProgramExecutable may not be present when
attempting to draw. This isn't an error, just undefined behavior, which
we (eventually) treat as a no-op.
According to the OpenGL ES 3.1 spec:
7.3. PROGRAM OBJECTS
If there is no active program for the vertex or fragment shader
stages, the results of vertex and fragment shader execution will
respectively be undefined. However, this is not an error.
To handle this, if no VS or FS is present in the active Program/PPO,
we will no-op the draw command.
Bug: angleproject:3570
Test: KHR-GLES31.core.sepshaderobjs.StateInteraction
Change-Id: I70d688bf344a78cf3b4fd66c995ae03ce4b9b807
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185156
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
1ab55d96
|
2020-05-06T14:45:18
|
|
Revert "No-Op draws when no active VS and/or FS is present"
This reverts commit a4b506f79e3286ffcf3a5d68f20aa97a63edab8e.
Reason for revert: WebGL crash
https://bugs.chromium.org/p/angleproject/issues/detail?id=4616
Original change's description:
> No-Op draws when no active VS and/or FS is present
>
> According to the OpenGL ES 3.1 spec:
>
> 7.3. PROGRAM OBJECTS
> If there is no active program for the vertex or fragment shader
> stages, the results of vertex and fragment shader execution will
> respectively be undefined. However, this is not an error.
>
> To handle this, if no VS or FS is present in the active Program/PPO,
> we will no-op the draw command.
>
> Bug: angleproject:3570
> Test: KHR-GLES31.core.sepshaderobjs.StateInteraction
> Change-Id: If19e9fbb1bc09fa0d490832079bb9f514eab6035
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2136386
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=timvp@google.com,jmadill@chromium.org,cclao@google.com
Change-Id: Ia24c4156ff7779b69c1f3f705f1a91cbb1c9684c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3570
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2184849
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
a4b506f7
|
2020-04-03T18:31:22
|
|
No-Op draws when no active VS and/or FS is present
According to the OpenGL ES 3.1 spec:
7.3. PROGRAM OBJECTS
If there is no active program for the vertex or fragment shader
stages, the results of vertex and fragment shader execution will
respectively be undefined. However, this is not an error.
To handle this, if no VS or FS is present in the active Program/PPO,
we will no-op the draw command.
Bug: angleproject:3570
Test: KHR-GLES31.core.sepshaderobjs.StateInteraction
Change-Id: If19e9fbb1bc09fa0d490832079bb9f514eab6035
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2136386
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
cb7e7387
|
2020-03-20T22:15:39
|
|
Remove 32-bit Subzero GLES31 SwANGLE suppressions
Remaining Windows crashes fixed by
https://swiftshader-review.googlesource.com/c/SwiftShader/+/42608
Bug: angleproject:4482
Change-Id: If1d6b6c4bd172c36108d31e01f561e001f49683f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2113716
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
0e069b42
|
2020-03-19T21:40:51
|
|
Skip SwANGLE GLES31 tests which crash with 32-bit Subzero only on Windows
Linux 32-bit crashes were fixed.
Bug: angleproject:4482
Change-Id: I3efd7c760dfec1f8b909eee2ed84f5f9ebc33c3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2111970
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
cb9a86a9
|
2020-03-15T14:24:32
|
|
Skip SwANGLE GLES31 tests which crash with 32-bit Subzero.
Started with https://swiftshader-review.googlesource.com/c/SwiftShader/+/42108
Bug: angleproject:4482
Change-Id: I48effe26aa7ce1b574f9df8ad9c3f560cb599cf3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104406
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d5861a68
|
2020-02-13T15:46:49
|
|
Fix ASAN errors in end2end tests.
2 minor issues of reading from uninitialized memory in tests.
Removes the suppressions from the fixed tests.
Bug: chromium:1029378
Change-Id: I466ce231cfed1ce53a60732706c05b778b096805
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2055649
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
788fa360
|
2020-02-10T14:07:12
|
|
Suppress two failing NVIDIA D3D11 tests.
Bug: angleproject:4391
Bug: angleproject:4392
Change-Id: I81cbf261cf206cd2d38cff93d16056c21bf78557
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047416
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4546c5ce
|
2020-01-31T15:05:35
|
|
Skip failing end2end tests on Windows on ARM
There are multiple failing tests on Windows on ARM which are related to drawing differences.
They seem to be similar to an already reported issue (anglebug.com/3748).
Bug: angleproject:4356
Bug: angleproject:4357
Change-Id: Ide5cc2e6f42d4c4b6fb88352833d20e517005c14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033067
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c73475fb
|
2020-01-29T11:37:05
|
|
Vulkan: Fix UtilsVk dirtying driver uniforms descriptor set binding
Most UtilsVk functions bind a descriptor set to index 0 (same as driver
uniforms). If that happens to close a render pass, all is well as
starting a new render pass ensures all descriptor sets are rebound.
However, if the render pass is not closed, or if a dispatch call is
issued (which never rebinds descriptor sets if not explicitly
necessary), then the driver uniforms descriptor set may end up never
rebound, causing a validation error (and possible crash or corruption).
This change makes sure that UtilsVk notifies the context when it binds a
descriptor set. The context then dirties the driver uniforms binding
as appropriate.
Bug: angleproject:4272
Change-Id: Ief20c7884fbe39712f844247489812afc70b30a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027938
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bc82fb14
|
2019-11-28T16:58:19
|
|
Suppress failing end2end tests for ASAN builds
GLSLTest_ES31.StructArraySample and
ComputeShaderTest.DispatchComputeIndirect both hit stack-buffer-overflow
errors with ASAN enabled, using the vulkan backend. Right now ASAN is
only tested on Mac, so these are only hit when Mac is using
swiftshader-vulkan.
Bug: 1029378
Change-Id: Ie590f73c29be44f683fd47fe4da139e1b5f96289
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1943408
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
88752889
|
2019-11-20T14:09:52
|
|
Vulkan: Fix barriers w.r.t sampled->storage image update
df415528411f97454e765ff6a83ed1cbc90a7d13 implemented a feature where
images are not created with the storage flag until needed. This is a
necessary optimization.
There were a few misuses of the BufferHelper::onRead/Write helpers that
set up the appropriate barriers that this change fixes.
Bug: angleproject:3816
Change-Id: I7e62d98b7325f938152a1972f4ebee083ed319c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924989
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Xinyi He <xinyi.he@arm.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Sunny Sun <sunny.sun@arm.com>
|
|
4c7db77e
|
2019-10-31T15:42:31
|
|
Vulkan: Set limitation on maxComputeWorkGroupCount
According to Table 20.45 and Chapter 17 in the ES 3.1 spec, MAX_COMPUTE_WORK_GROUP_COUNT
is get as a GLint by using GetIntegeri_v. However, it is an unsigned integer
in the Vulkan. It needs to set limitation on maxComputeWorkGroupCount[] during
translating.
1. Change the data type to GLint stored in Caps.
2. Ensure that the limitation is set during initialization.
3. Add workaround for angleproject:4120
Bug: angleproject:4066
Change-Id: I1659ba1d560e30b9599cace0feeab8a18890c3ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1890586
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c1776c61
|
2019-11-13T11:36:35
|
|
Vulkan:Add Swiftshader configs
Add Swiftshader configs to existing test instantiation macros for all ESX
variants. This causes Swiftshader to be used to run end2end tests.
Added detection code to know when tests are running on Swiftshader and skipping
a number of fails initially.
Note that when running ANGLE end2end tests within Chromium build on Win32 bots
there were crashes with Swiftshader config for tests that should have been skipped.
Due to this, just skipping Swiftshader configs on Win32 for now.
Bug: angleproject:4081
Bug: angleproject:4092
Change-Id: I32527a62304c5fad90f645b372edf9411ca2b212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1914126
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1a01b4b3
|
2019-11-11T16:41:07
|
|
Refactor end2end test macros
This is a foundational CL to enabling the end2end tests on swiftshader.
Refactored infrastructure with new ANGLE_INSTANTIATE_TEST_ES*
macros that will run tests over all various combinations of all
platforms for different ES versions.
Just skipping failing tests initially to get the refactor landed.
Bug: angleproject:4081
Bug: angleproject:4092
Change-Id: I017f6c3267179e49b6ae08cc7488096b423dcdb5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1904635
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
df415528
|
2019-10-24T09:22:39
|
|
Vulkan: Enable VK_IMAGE_USAGE_STORAGE_BIT when it is needed
VK_IMAGE_USAGE_STORAGE_BIT is always enabled for vkImage, this
increases memory bandwidth in some platforms.
This CL changes the behavior to enable VK_IMAGE_USAGE_STORAGE_BIT
when necessary.
Bug: angleproject:3904
Test: angle_end2end_tests
Test: angle_deqp_gles2_tests
Change-Id: I8ffd37efa8d99d04328fa6232de0755be3273d9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1857799
Commit-Queue: Sunny Sun <sunny.sun@arm.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d192e933
|
2019-09-27T10:27:10
|
|
Vulkan: Support binding texture levels as a rendertarget
This CL refactors how TextureVk handles rendertargets. It removes
the single rendertarget that previously supported 2D, and expands
the layer/level list of rendertargets to handle all cases.
Bug: angleproject:3184
Bug: angleproject:3996
Test: Texture2DTestES3.FramebufferTextureChangingBaselevel/ES3_Vulkan
Test: FramebufferRenderMipmapTest.RenderToMipmap/ES2_Vulkan
Test: FramebufferRenderMipmapTest.RenderToMipmap/ES3_Vulkan
Test: ComputeShaderTest.ImageStoreMipmapSlice/ES3_1_Vulkan
Change-Id: I466d0389cc6744994f88c40cc388fca694b53a99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1854895
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
8896e18e
|
2019-10-08T16:07:52
|
|
Fix the missing global memory barriers
This adds the transtlations of GL_SHADER_IMAGE_ACCESS_BARRIER_BIT, and
GL_FRAMEBUFEER_BARRIER_BIT to the vulkan backend.
Bug: angleproject:3934
Change-Id: I2bd86a16b461cf7dc01d0d4386f49365a5292446
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1847172
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1d02157e
|
2019-09-24T10:54:40
|
|
Only enable shader array size restrictions for HLSL
Shader arrays are currently restricted to 64K entries for all translator
back ends. This is being changed to just HLSL, since the other back
ends appear to have support for larger sizes.
Bug: angleproject:3865
Test: dEQP-GLES31.functional.compute.basic.copy_image_to_ssbo_large
Test: dEQP-GLES31.functional.compute.basic.copy_ssbo_to_image_large
Test: ComputeShaderTest.VeryLargeArrayInsideFunction/*
Change-Id: I9a9d1322e24b3206debdea6a3fd517b4d6869ed9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1821943
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
fd092e85
|
2019-10-02T13:19:00
|
|
Vulkan: Point end2end failure at correct bug
The ComputeShaderTest.BindImageTextureWithOneLayerTexture3D/ES3_1_Vulkan test
is failing because of the previously-reported angleproject:3886.
Switching the comment to so indicate.
Bug: angleproject:3188
Bug: angleproject:3886
Change-Id: Ib62316dcf3935f96bdcab701e8fdb6042a1ab859
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1834837
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
4671fee9
|
2019-10-01T12:28:25
|
|
Don't expose CHROMIUM_color_buffer_float_rgb[a] in ES3.0+
These extensions are superseded by EXT_color_buffer_float and not needed to support
WebGL2. Allowing them to expose rendering to RGB[A]32F when EXT_color_buffer_float
is not supported causes dEQP failures.
BUG=angleproject:3939
Change-Id: Ib50a061526f29fc0628e732123c04a22800345dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1832525
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
988f7170
|
2019-09-30T15:52:37
|
|
Vulkan: Base/max level fixes and cleanup
This CL cleans up references to base/max level bug and fixes
one lingering issue regarding special handling of depth/z for
arrayed surfaces.
Bug: angleproject:3148
Bug: angleproject:3184
Bug: angleproject:3948
Bug: angleproject:3949
Bug: angleproject:3950
Test: dEQP-GLES3.functional.texture.mipmap.*base_level*
Test: dEQP-GLES3.functional.texture.mipmap.*max_level*
Test: Texture2DArrayTestES3.DrawWithLevelsOutsideRangeWithInconsistentDimensions
Change-Id: Iad72005a111507c50b8be9726adc32285bbae52b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1832757
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
6d625bfe
|
2019-09-23T20:05:29
|
|
Skip ComputeShaderTest.UniformDirty on Linux Intel Vulkan
Flaky on Linux FYI Release (Intel HD 630) bot.
Bug: angleproject:3934
Change-Id: Ia3092e9c740d0052e106d464c59ceac63d4e434e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1820085
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
91180c48
|
2019-09-02T14:33:11
|
|
Also skip ComputeShaderTest.UniformDirty/ES3_1_Vulkan on Win/NVIDIA
The test is failing since the suppression was lifted.
BUG=angleproject:3879
Change-Id: Ic2d45db7f7e2388c0c0040183c8760ee6a8fcb08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1778863
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
912e52d8
|
2019-08-23T00:25:09
|
|
Vulkan: Storage image support
Image bindings are placed after atomic counters in the "resources"
descriptor set.
There are two issues yet to be addressed:
- GL can create a 2D (array) view of a 3D image, but this is not allowed
in Vulkan. If this cannot be made possible, emulation needs to be
done.
https://github.com/KhronosGroup/Vulkan-Docs/issues/1033
- GL can create an image view of a texture with a different format and
have the data reinterpreted. This is not currently done.
Bug: angleproject:3563
Change-Id: I95c4d92c50bb033212a9a67f3f2d6f97c074c7bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1767366
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
68c4fec0
|
2019-08-23T09:48:41
|
|
Add AtomicCounterIncrement test case
Add AtomicCounterIncrement test case.
BUG=angleproject:3246
Change-Id: I6e74f349b758c3ae9fcb44a14e70d36495406dfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1768017
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a9389dfe
|
2019-08-23T15:22:35
|
|
Revert "Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA"
This reverts commit aac491fcdb31b7cea6d60db8787531b3acc87cd0.
Reason for revert: This test is still failing on the Win7 NVIDIA bots:
https://ci.chromium.org/p/chromium/builders/ci/Win7%20FYI%20Release%20%28NVIDIA%29/6206
https://ci.chromium.org/p/chromium/builders/ci/Win7%20FYI%20x64%20Release%20%28NVIDIA%29/6261
Original change's description:
> Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA
>
> Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA.
>
> BUG=angleproject:2280
>
> Change-Id: I9ea72939cd0f828295bb694c9d3515ef554c9a36
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763948
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=kkinnunen@nvidia.com,jmadill@chromium.org,svaisanen@nvidia.com
Change-Id: Ib7802e66b68419f7aa3dabf3a308811d36c52ff2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2280
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769076
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
aac491fc
|
2019-08-21T13:21:52
|
|
Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA
Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA.
BUG=angleproject:2280
Change-Id: I9ea72939cd0f828295bb694c9d3515ef554c9a36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763948
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
eb06814d
|
2019-07-03T17:17:45
|
|
Correct barriers of glMemoryBarrier in test cases
Some test cases use wrong barriers when calling glMemoryBarrier.
Bug: angleproject:2280
Change-Id: I0750c1eba84ed8af32091f7ecd5bdbd2b32fd397
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1687591
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
|
|
2e43b0f5
|
2019-07-11T17:09:54
|
|
Vulkan: Implement memory barriers
Bug: angleproject:3574
Change-Id: I13d8f4fcd6f1bf9bf3496c91c2c697076e2491bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1699005
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
96682377
|
2019-07-08T11:06:27
|
|
Fix the RTV and SRV conflict
This change fixes below error:
Message 0: ID3D11DeviceContext::CSSetShaderResources: Resource being set
to CS shader resource slot 0 is still bound on output! Forcing to NULL.
Bug: angleproject:3658
Change-Id: I72d656cf61ffb7c39660c019eab980c39eafb70f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688307
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
383d1209
|
2019-07-02T20:57:24
|
|
Skip ComputeShaderTest.ImageAtomicCounterBuffer
on Win NVIDIA GL.
Bug: angleproject:3636
Change-Id: If106efa79967fa88d2c67feb7f07309e613ab989
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1686740
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
1245f078
|
2019-06-25T13:51:29
|
|
Use D3D11 GetDimensions driver workaround for dynamic images
Some NVIDIA D3D11 drivers are buggy and interprets the level passed to
GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip.
This affects the implementation of the imageSize function in the D3D11 backend.
Bug: angleproject:3100
Change-Id: I1e48f5df5e40caf49a4d07662aec587e98cf8388
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1677206
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3b225597
|
2019-06-17T14:18:06
|
|
Fix the DispatchCompute error
The error happens when a RWTexture is used in shader. However, there is
no resource binding to it. We should clear the corresponding UAV in case
the previous view type is a bufer not a texture.
Meanwhile, this patch removes clearSRVs/clearUAVs since we use
unsetConflictingSRVs/unsetConflictingUAVs to do the similar thing.
Bug: angleproject:3512, angleproject:3548
Change-Id: I01752bb9bc6aca5b767599639c4dc613b4e2e2d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1662017
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
88e03221
|
2019-05-31T12:06:28
|
|
Unset conflicting SRVs and UAVs
D3D11 cannot allow the same (sub)-resource bound as both
a SRV and an UAV at the same time. Unset conflicting SRVs
and UVAs between render pipeline and compute pipeline.
Bug: angleproject:3152
TEST=angle_end2end_tests.ComputeShaderTest.*
Change-Id: I9cb8b902edbf987166a57af314af6b21a6874998
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1576504
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
|
|
6064e6ab
|
2019-06-11T04:01:12
|
|
Reland "Temporarily disable creating D3D debug device."
This reverts commit 28394c2295335929c17bbfe0ab74f923cd234ff2.
Reason for revert: may be the cause of flakiness on Win10 Debug (NVIDIA) per http://crbug.com/972914 .
Original change's description:
> Revert "Temporarily disable creating D3D debug device."
>
> This reverts commit 3d544fffe7ff9284b21e3a15f638297c827bbc21.
>
> Reason for revert: Seems like flakiness is not related.
>
> Suppress D3D11 test failures uncovered by re-enabling D3D debug device:
> ComputeShaderTest.DispatchCompute
> Texture2DTestES3.TextureImplPropogatesDirtyBits
> D3DTextureTestMS.*
>
> Also a small fix to ANGLETestBase::checkD3D11SDKLayersMessages
> to clear reported messages, otherwise the failures are also reported
> for tests following the one with the actual failure.
>
> Original change's description:
> > Temporarily disable creating D3D debug device.
> >
> > To diagnose whether Windows Intel end2end tests flakiness
> > is related to creating debug device and new version of Windows SDK.
> >
> > Bug: angleproject:3153
> > Change-Id: Ica7eae3fe875e22203b6dfd98b83604d66a97737
> > Reviewed-on: https://chromium-review.googlesource.com/c/1476954
> > Reviewed-by: Geoff Lang <geofflang@chromium.org>
> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
>
> Bug: angleproject:3153, angleproject:3493
> Bug: angleproject:3501, angleproject:3512, angleproject:3513
>
> Change-Id: I232da72aa09c2b9230cf179dd54e1731f8365f8e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1480854
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@chromium.org
Change-Id: I38a5cc9bb6ebcd50e97e40cc972a82679e73732a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3153, angleproject:3493, angleproject:3501, angleproject:3512, angleproject:3513
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652784
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
28394c22
|
2019-02-21T03:24:58
|
|
Revert "Temporarily disable creating D3D debug device."
This reverts commit 3d544fffe7ff9284b21e3a15f638297c827bbc21.
Reason for revert: Seems like flakiness is not related.
Suppress D3D11 test failures uncovered by re-enabling D3D debug device:
ComputeShaderTest.DispatchCompute
Texture2DTestES3.TextureImplPropogatesDirtyBits
D3DTextureTestMS.*
Also a small fix to ANGLETestBase::checkD3D11SDKLayersMessages
to clear reported messages, otherwise the failures are also reported
for tests following the one with the actual failure.
Original change's description:
> Temporarily disable creating D3D debug device.
>
> To diagnose whether Windows Intel end2end tests flakiness
> is related to creating debug device and new version of Windows SDK.
>
> Bug: angleproject:3153
> Change-Id: Ica7eae3fe875e22203b6dfd98b83604d66a97737
> Reviewed-on: https://chromium-review.googlesource.com/c/1476954
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bug: angleproject:3153, angleproject:3493
Bug: angleproject:3501, angleproject:3512, angleproject:3513
Change-Id: I232da72aa09c2b9230cf179dd54e1731f8365f8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1480854
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
311e8086
|
2019-05-15T13:25:56
|
|
Do struct mapping under conditions
Struct mapping consumes lots of time when the array lengh is very large.
And it's done unconditionally. This CL does struct mapping only if it's
a struct assignment or passing the struct to a function.
In the next step, we can use a function to do struct mapping instead of
struct array initialization.
Bug: angleproject:2967
Change-Id: Ie5a74fa05dbc0255ad664d6265dbb880a624f01e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1612978
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
1b0acbb5
|
2019-04-23T15:17:56
|
|
Add cases with multiple draws and dispatches
D3D11 cannot allow the same (sub)-resource bound as both
a SRV and an UAV at the same time. If render pipline and
compute pipeline access the same texture, must unset
conflicting SRVs and UAVs before drawing and dispatching
on D3D backend. Currently, these cases could not pass
on D3D11 backend.
Bug: angleproject:3152
TEST=angle_end2end_tests.ComputeShaderTest.*
Change-Id: I3ed19d7586625aac7fe9f46f86341d136d148019
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1578131
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
|
|
82bcffa7
|
2019-04-17T10:45:25
|
|
Disable parallel compile for d3d11 compute
To observe whether the flaky issues still show up with the feature
disabled.
Bug: angleproject:3349
Change-Id: I0eae861ad76212fb4a65b57c1e1b5e8c583d6a3b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1571027
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
|
|
e02ad4d3
|
2019-04-16T14:12:37
|
|
Suppress tests crashing on teardown on Win Intel D3D11
BUG=angleproject:3349
Change-Id: Ib86f8b87d719919c980240d3220521a3c7f8a942
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1569466
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
9b050f84
|
2019-03-01T13:31:14
|
|
Fix that 0 is a valid memory barrier
Bug: angleproject:2280
Change-Id: Iad82d5838a7efdb6f6287aafb9ab980e9e86468d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1496017
Reviewed-by: Jamie Madill (use @chromium please) <jmadill@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
c9bc33cf
|
2019-03-04T17:31:05
|
|
Disable the initialization of shared memory
This patch disables the initialization of shared memory for d3d backend.
The initialization of shared memory is very slow and may produce
incorrect behavior for some compute shaders on d3d backend.
Bug: angleproject:3226
Change-Id: I41f0f061a5611c52af7667f23938fa48819906b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1498385
Reviewed-by: Jamie Madill (use @chromium please) <jmadill@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
49c9dfe3
|
2018-12-29T16:48:20
|
|
Fix the SSBO sync bug in two dispatch calls
We should make sure that the raw buffer is the latest buffer before each
dispatch call since the dispatch itself can update the raw buffer content.
Bug: angleproject:3037
Change-Id: I75dddfd3e57b3c9cbcc58c02ed057c66cc8e1785
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1392379
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
794364eb
|
2019-01-17T17:54:29
|
|
Add test cases of image built-in functions
Add test cases that image accesses a mipmap level
of texture, meanwhile exposes two driver bugs.
Bug: angleproject:1987
TEST=angle_end2end_tests.ComputeShaderTest.*
Change-Id: I4c43cdb97de8223d5e9af3757f41eb01eac81d0a
Reviewed-on: https://chromium-review.googlesource.com/c/1415727
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
94d8a9a4
|
2019-01-17T08:47:57
|
|
ES31: Enable several SSBO end2end tests on D3D11
This patch enables several SSBO tests on D3D11 in ANGLE end2end
tests.
Bug: angleproject:1951
Change-Id: I1ba78133e5bbe581e8330c1c43755c174e28bf39
Reviewed-on: https://chromium-review.googlesource.com/c/1415721
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
|
|
f3179a6a
|
2018-07-12T16:22:06
|
|
ES31: Implement bindImageTexture binds a single layer on D3D backend
Dynamically generate image2D variables' declaration and function
definition in libANGLE.
Bug: angleproject:1987
TEST=angle_end2end_tests.ComputeShaderTest.*
Change-Id: Idacc756f7bd15f22eccb1d689e18e997f3e74159
Reviewed-on: https://chromium-review.googlesource.com/c/1142885
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c5117571
|
2018-12-28T15:56:41
|
|
Add test case for storage buffer
When storage buffer bound is unchanged and shader writes it,
buffer content should also be updated. Currently, this case
cannot work normally on D3D backend.
Bug: angleproject:2814
TEST=angle_end2end_tests.ComputeShaderTest.StorageBufferBoundUnchanged
Change-Id: I6f25b7eac84c44392befaca61a33bdf2457f29f9
Reviewed-on: https://chromium-review.googlesource.com/c/1391880
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
84412860
|
2018-12-21T17:41:24
|
|
Set dirty for uniform on D3D backend
When uniform's value had been updated, set dirty and
update its content on D3D backend.
Bug: angleproject:2814
TEST=angle_end2end_tests.ComputeShaderTest
.UniformDirty/ES3_1_D3D11
dEQP.GLES31/functional_image_load_store_cube*
dEQP.GLES31/functional_image_load_store_3d*
dEQP.GLES31/functional_image_load_store_2d_array*
Change-Id: Ic135c140559925fe33790475d03dc608afa92384
Reviewed-on: https://chromium-review.googlesource.com/c/1387967
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
|
|
0d218da4
|
2018-12-17T11:53:52
|
|
Specify texture LOD in compute shader on D3D backend
D3D does not define LOD in compute shader, so Sample()
is not supported, try to use SampleLevel().
Bug: angleproject:2756
TEST=angle_end2end_tests.ComputeShaderTest
.TextureFunction/ES3_1_D3D11
dEQP.GLES31/functional_image_load_store_2d_store*
Change-Id: I63e707d2b56e807cfe766cc21bc6b0819982ce80
Reviewed-on: https://chromium-review.googlesource.com/c/1379672
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
35cd7332
|
2018-12-02T12:03:33
|
|
Refactor test shader style.
This change enforces a lot more consistency. We pass const char * to
the Compile functions instead of std::string. Also fixes the
indentation of C++11 block comments to be more consistent.
Bug: angleproject:2995
Change-Id: Id6e5ea94055d8cbd420df4ea2e81b2d96cb5ce78
Reviewed-on: https://chromium-review.googlesource.com/c/1357103
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cd47a379
|
2018-11-11T11:08:16
|
|
Add SH_INIT_SHARED_VARIABLES flag
This option is used to initialize shared variables to zero at the
beginning of shader execution to avoid compute shaders being able to
read undefined values that could be coming from another webpage or
application.
It's implemented by declaring variables with initial value for HLSL.
For GLSL, it's not allowed to use declaraction initializer for shared
variables, so we need to explicitly assign them to zero at the
beginning of main(). This implementation is only for HLSL.
Bug: chromium:898030
Change-Id: Ic5906500bf4a35cd9a071923f82f32c5e2991be3
Reviewed-on: https://chromium-review.googlesource.com/c/1330310
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6d765b07
|
2018-09-28T14:16:06
|
|
ES31: Fix some bugs in ShaderStorageBlockOutputHLSL
When EOpIndexDirect/EOpIndexIndirect/EOpIndexDirectStruct/TIntermSwizzle
appear in [] in ssbo access chain, we should transfer the process of them to
OutputHLSL.
For example:
instance.v[gl_GlobalInvocationID.x] = data;
// becomes
float_Store(dx_instance, 0 + 16 * gl_GlobalInvocationID.x, _data);
instance.v[s.index[0].x] = data;
// becomes
float_Store(dx_instance, 0 + 16 * _s.index[0].x, _data);
Bug: angleproject:1951
Change-Id: I333e238400a10a799a6294f8759cf9c4ef2451c8
Reviewed-on: https://chromium-review.googlesource.com/c/1250661
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
c55aefe3
|
2018-08-28T19:59:00
|
|
ES31: Support atomic functions on D3D11 - Part III
This patch is the third one to support atomic functions on D3D11.
In this patch we enable support for atomic function returns outside of
assignments (e.g. part of arithmetic operations or to index into arrays) and
when used directly initialize a variable.
Note that we are still missing the functionality to be tag loops with
[allow_uav_condition] as required by InterlockedCompareExchange.
BUG=angleproject:2682
TEST=angle_end2end_tests
Change-Id: Ia409ebb10621fd5c514cf6c76f366a320a9d9fc1
Reviewed-on: https://chromium-review.googlesource.com/1208317
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
95277a30
|
2018-09-06T20:12:56
|
|
ES31: Add DispatchComputeIndirect support for D3D11
BUG=angleproject:2270
TEST=angle_end2end_tests.ComputeShaderTest.DispatchComputeIndirect/ES3_1_D3D11
Change-Id: I29bd888ce1e7e3e09b5635699a36164cd97cd7de
Reviewed-on: https://chromium-review.googlesource.com/1209563
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
|
|
a735ee2f
|
2018-05-18T13:29:09
|
|
ES31: Support shader storage block in D3D11 compiler - Part1
This patch is the first step to implement a basic skeleton to translate
shader storage block to HLSL RWByteAddressBuffer.
In GLSL each shader storage block is just one structured block and in API side
it corresponds to a buffer range where stores the whole structure.
RWStructuredBuffer is an array-like object and can have many structured
elements. The structured element doesn't support unsized array and also have
a small limitation on the element size. So we choose RWByteAddressBuffer as
the counterpart of shader storage block in HLSL.
Due to RWByteAddressBuffer does not support using an index to reference a
specific location, we must use Load and Store to process the read/write
operation of a buffer variable. Moreover, in the compiler tree, since we
can't use variable name to get the resource value in RWByteAddressBuffer,
we have to calculate the offset of buffer variable in a shader storage block,
then call the corresponding wrapper function to get the right value.
In this patch, we only process below situations:
assign_to_ssbo := ssbo_access_chain = expr_no_ssbo;
assign_from_ssbo := lvalue_no_ssbo = ssbo_access_chain;
The translation is like below:
// GLSL
#version 310 es
layout(local_size_x=8) in;
layout(std140, binding = 0) buffer blockA {
float f[8];
} instanceA;
layout(std140, binding = 1) buffer blockB {
float f[8];
};
void main()
{
float data = instanceA.f[gl_LocalInvocationIndex];
f[gl_LocalInvocationIndex] = data;
}
// HLSL
RWByteAddressBuffer _instanceA: register(u0);
RWByteAddressBuffer _blockB: register(u1);
float float_Load(RWByteAddressBuffer buffer, uint loc)
{
float result = asfloat(buffer.Load(loc));
return result;
}
void float_Store(RWByteAddressBuffer buffer, uint loc, float value)
{
buffer.Store(loc, asuint(value));
}
void gl_main()
{
float _data = float_Load(_instanceA, 0 + 16 * gl_LocalInvocationIndex);
float_Store(_blockB, 0 + 16 * gl_LocalInvocationIndex, _data);
}
We will do below things in the following patches:
1. Modify the intermediate tree to flatten all ssbo usages to:
assign_to_ssbo := ssbo_access_chain = expr_no_ssbo;
assign_from_ssbo := lvalue_no_ssbo = ssbo_access_chain;
e.g.
intanceA.a +=1;
->tmp = intanceA.a;
intanceA.a = tmp + 1;
while(++instanceA.a < 16) {
}
->
int PreIncrement(out int a)
{
a += 1;
return a;
}
tmp = instanceA.a;
while(PreIncrement(tmp) < 16) {
instanceA.a = tmp
}
2. Add offset calculation for structure and array of arrays.
TODOs have been marked in the corresponding places in this patch.
3. Improve helper functions so that they can process all possible types.
TODOs have been marked in the corresponding places in this patch.
4. Process the swizzle situation.
TODOs have been marked in the corresponding places in this patch.
A possible method is to extend current helper functions like below:
*_Load(RWByteAddressBuffer buffer, uint loc, bool isSwizzle, uint4 swizzleOffset)
Bug: angleproject:1951
Test: angle_end2end_tests
Change-Id: I68ae68d5bb77d0d5627c8272627a7f689b8dc38b
Reviewed-on: https://chromium-review.googlesource.com/848215
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
155bfd11
|
2018-08-31T17:27:10
|
|
Fix that same resource is bound on SRV and UAV simultaneously
This change makes sure that resource being set to UnorderedAccessView slot is
not bound on ShaderResourceView and resource being set to shader resource slot
is not bound on UnorderedAccessView.
Bug: angleproject:2768
Change-Id: I52fc5bf5e76ccf8be61c59b2195459728f95e536
Reviewed-on: https://chromium-review.googlesource.com/1201324
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
913ff54d
|
2018-08-07T15:14:05
|
|
ES31: support compute shader uniform buffer on D3D backend
BUG=angleproject:2759
TEST=angle_end2end_tests.ComputeShaderTest.UniformBuffer/ES3_1_D3D11
Change-Id: I92326c3a84f13b364aed0daf567b68f8a411ed2b
Reviewed-on: https://chromium-review.googlesource.com/1164843
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
|