OSDN Git Service

android-x86/external-swiftshader.git
5 years agoUse C++11 std::swap()
Nicolas Capens [Tue, 19 Mar 2019 05:52:40 +0000 (01:52 -0400)]
Use C++11 std::swap()

Bug b/126126820

Change-Id: Iaf3991d58c64995018ba0d15773b65d463e03fad
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27549
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoRegres: Update test lists @ bbf5cf1e
SwiftShader Regression Bot [Tue, 19 Mar 2019 09:12:30 +0000 (09:12 +0000)]
Regres: Update test lists @ bbf5cf1e

Change-Id: I5aab5f50bad232227a7bf3af1dd40396c0f208a5
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27449
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoWire up sample mask correctly
Chris Forbes [Wed, 6 Mar 2019 17:00:56 +0000 (09:00 -0800)]
Wire up sample mask correctly

Bug: b/118386749
Change-Id: I4d6150907a0afea8eeff28334dae1e4af6309075
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26309
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
5 years agoTidy stencil state handling
Chris Forbes [Mon, 18 Mar 2019 18:41:56 +0000 (11:41 -0700)]
Tidy stencil state handling

Bug: b/128715612
Change-Id: I1e9859d2cf001bfb341a49ad4f8fc9ef52c9fa5b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27508
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoAllow null dispatchable objects
Alexis Hetu [Fri, 15 Mar 2019 19:56:01 +0000 (15:56 -0400)]
Allow null dispatchable objects

Because we need to dereference dispatchable objects in order to get
the underlying object, we need to first check for VK_NULL_HANDLE to
avoid crashing.

Bug b/116336664

Change-Id: Ia903dcc6142d5e7f283da8fbef0f43bae3ca243f
Tests: dEQP-VK.api.null_handle.free_command_buffers
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27388
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoCopy kokoro folder to tests/kokoro
Nicolas Capens [Mon, 18 Mar 2019 14:03:43 +0000 (10:03 -0400)]
Copy kokoro folder to tests/kokoro

This duplicates the folder for now. The old one will be removed once
the service has been switched over to the new one.

Bug b/126742833

Change-Id: Idba255cb8dad165559c56cb614fa915089c3858d
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27489
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
5 years agoFix Travis CI build
Nicolas Capens [Mon, 18 Mar 2019 13:54:20 +0000 (09:54 -0400)]
Fix Travis CI build

The /build directory is checked into the repository so the
'mkdir build' produced an error that it already exists.

We'll switch to using Kokoro for CI as soon as it completely replaces
all uses of Travis CI.

Bug b/115784742

Change-Id: Ie04edccbb7a875f105353eec203fcabce2f33bc3
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27488
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
5 years agoReintroduce "VkDebug: Update macros to address issues in b/127433389"
Ben Clayton [Sun, 17 Mar 2019 17:29:30 +0000 (17:29 +0000)]
Reintroduce "VkDebug: Update macros to address issues in b/127433389"

36411219f had preprocessor issues on Windows.
This should now work on all platforms.

I had to change UNIMPLEMENTED() and UNREACHABLE() to always take a
format parameter to make this work on MSVC. This doesn't seem like
a terrible thing though - especially if we can incorporate the
frequency of hit UNIMPLEMENTED()'s to steer our focus.

Change-Id: Idc58dbe6caa3fb51e085c3b236904c640091deec
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27468
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoComputeProgram: Clean up usage of Float4/Int4 and SIMD::Float/SIMD::Int
Ben Clayton [Wed, 13 Mar 2019 14:28:32 +0000 (14:28 +0000)]
ComputeProgram: Clean up usage of Float4/Int4 and SIMD::Float/SIMD::Int

Bug: b/126126820
Change-Id: I0df0841952dcaa9c8376847704a9697b9c9e9894
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27093
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agoCompute: WorkgroupSize decorations take precedence over LocalSize
Ben Clayton [Wed, 13 Mar 2019 14:18:58 +0000 (14:18 +0000)]
Compute: WorkgroupSize decorations take precedence over LocalSize

Test: dEQP-VK.subgroups.builtin_var.compute.*
Bug: b/126871859
Change-Id: Ida9cb49548ec984039d8730d50be7c8b22c3bfb8
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27092
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agoRegres: Update test lists @ 845cb5e1
SwiftShader Regression Bot [Sat, 16 Mar 2019 06:06:11 +0000 (06:06 +0000)]
Regres: Update test lists @ 845cb5e1

Change-Id: Idbe4177c0031c858b0886c8c3c8ebe8e92d2614b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27448
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoFix stencil state plumbing
Chris Forbes [Sat, 16 Mar 2019 02:31:21 +0000 (19:31 -0700)]
Fix stencil state plumbing

Bug: b/128715612
Test: dEQP-VK.pipeline.stencil.format.*
Change-Id: I4789c0ff77c43e91fc7cbd7e2aceab0b1ba9cdb3
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27429
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoPropagate image view clear aspect mask to image clear
Chris Forbes [Sat, 16 Mar 2019 01:37:58 +0000 (18:37 -0700)]
Propagate image view clear aspect mask to image clear

The mask was previously dropped on the floor here, and the imageview's
only mask used instead. This would produce incorrect results when a
renderpass begin operation had different load ops for depth vs stencil aspect.

Bug: b/128715612
Change-Id: I2bf4051e16c027737b65cd5bc5193a94cf891c36
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27428
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoAdd support for OpFRem
Chris Forbes [Fri, 15 Mar 2019 21:50:47 +0000 (14:50 -0700)]
Add support for OpFRem

This is the `other` remainder from OpFMod, which we already had.
Uses the existing RValue<Float4> % RValue<Float4> operator wiring; the
only plumbing I had to fix was that llvm emits a call to fmodf, which
was made available in ExternalFunctionSymbolResolver.

Test: dEQP-VK.spirv_assembly.instruction.compute.opfrem.all
Test: dEQP-VK.spirv_assembly.instruction.graphics.frem.*
Bug: b/126873455
Change-Id: I81fbfd8f9e5cab6ac2f16319edda031a122e3a4d
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27370
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoAdd support for OpFMod
Chris Forbes [Fri, 15 Mar 2019 20:43:36 +0000 (13:43 -0700)]
Add support for OpFMod

Bug: b/126873455
Test: dEQP-VK.glsl.operator.common_functions.mod.*
Change-Id: I7f261e7bd4dda72b18594cd7e2ee7044bc60466b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27369
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoAdd support for OpInBoundsAccessChain
Chris Forbes [Fri, 15 Mar 2019 19:27:34 +0000 (12:27 -0700)]
Add support for OpInBoundsAccessChain

This can be treated exactly the same as OpAccessChain.

Bug: b/128690261
Bug: b/127950082
Test: dEQP-VK.spirv_assembly.instruction.compute.opinboundsaccesschain.*
Change-Id: I65312ad48e461ec83e6999c6a899820e91e2a68b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27368
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoRemove Reactor argument tests for small integers
Nicolas Capens [Fri, 15 Mar 2019 21:22:42 +0000 (17:22 -0400)]
Remove Reactor argument tests for small integers

Booleans and integer types smaller than 32-bit are not readily
supported as arguments by Subzero.

Was broken by https://swiftshader-review.googlesource.com/27251

Change-Id: I0803037100b107ca9f7b627c2effd0493b8ab1a8
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27390
Tested-by: Nicolas Capens <nicolascapens@google.com>
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
5 years agoRevert "VkDebug: Update macros to address issues in b/127433389"
Ben Clayton [Fri, 15 Mar 2019 20:41:33 +0000 (20:41 +0000)]
Revert "VkDebug: Update macros to address issues in b/127433389"

Breaks windows build.

This reverts commit 36411219ff2b1c1c3a783b6577b812e0bc5f2293.

Change-Id: I89286d25ed0e362f16e981d3c4d39a4661ee02c2
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27329
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoAdd Python path to Kokoro batch script
Nicolas Capens [Fri, 15 Mar 2019 20:18:29 +0000 (16:18 -0400)]
Add Python path to Kokoro batch script

Bug b/123360006

Change-Id: Ie29b1fea3607ad0da2fb48cf3a5248e976c2cf5f
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27389
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoAdd support for OpVectorInsertDynamic, OpVectorExtractDynamic
Chris Forbes [Fri, 15 Mar 2019 17:31:08 +0000 (10:31 -0700)]
Add support for OpVectorInsertDynamic, OpVectorExtractDynamic

Bug: b/126873455
Tests: dEQP-VK.spirv_assembly.*
Change-Id: I8b6b6329b37469b9779178488f96fc62c341997b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27308
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoAdd support for OpSRem
Chris Forbes [Thu, 14 Mar 2019 19:55:20 +0000 (12:55 -0700)]
Add support for OpSRem

Test: dEQP-VK.spirv_assembly.*srem*
Bug: b/126873455
Change-Id: I9f5f519f7dac72ef7c7b45e88451fcb9dae0b3f8
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27270
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoRemove asserts on depth bounds values
Chris Forbes [Thu, 14 Mar 2019 20:07:37 +0000 (13:07 -0700)]
Remove asserts on depth bounds values

We don't support the depth bounds test so these values do nothing; there
is no validity requirement placed on these values

Bug: b/118386749

Change-Id: I6e75181df6c2b497e91e2fa7a2029d408f8bacbe
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27269
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoRemove asserts blocking specialization constant use
Chris Forbes [Thu, 14 Mar 2019 20:07:08 +0000 (13:07 -0700)]
Remove asserts blocking specialization constant use

These have been fully implemented for some time.

Bug: b/124058197
Change-Id: I8146c0902aa0c4caa974e5af5b1a36104846934c
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27268
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoRun spirv-opt pass to eliminate dead functions after inlining
Chris Forbes [Thu, 14 Mar 2019 21:19:04 +0000 (14:19 -0700)]
Run spirv-opt pass to eliminate dead functions after inlining

The inliner leaves the original functions. If we want the simplicity of
not thinking about functions, we have to remove them.

Change-Id: I0d0c7f8d3de21095b52d86a4c62015287eda32cc
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27272
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoComputeProgram: Add subgroup builtins.
Ben Clayton [Wed, 13 Mar 2019 09:16:50 +0000 (09:16 +0000)]
ComputeProgram: Add subgroup builtins.

Test: dEQP-VK.subgroups.builtin_var.compute.*

Bug: b/126871859
Change-Id: If1585778ca5a85e2b8a66f4ddf6a58050620a112
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27089
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoDescriptorSetLayout destruction fix
Alexis Hetu [Fri, 15 Mar 2019 15:41:04 +0000 (11:41 -0400)]
DescriptorSetLayout destruction fix

Extra useless deallocations weren't cleaned up properly.
Removed them.

Bug b/123244275

Change-Id: I418a4c09a870748551a92c1abb3986e94b32ba92
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27289
Tested-by: Alexis Hétu <sugoi@google.com>
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agosRGB filtering fix
Alexis Hetu [Fri, 15 Mar 2019 12:32:49 +0000 (08:32 -0400)]
sRGB filtering fix

Enable sRGB conversion when filtering sRGB images

Tests: dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.*

Bug b/119620767

Change-Id: If56a3f74fbf3ee576d9baab44722a13a1ad0d436
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27288
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoCubeMap fixes
Alexis Hetu [Thu, 14 Mar 2019 19:10:51 +0000 (15:10 -0400)]
CubeMap fixes

The following changes are done in this cl:
- Added multilayer support in Blitter::blit()
- Fixed Image::texelOffsetBytesInStorage() for cubes, since there's
  a 1 pixel border around it, so pixel offset (0,0,0) should be an
  extra line (1 pixel offset in Y) + 1 pixel (1 pixel offset in X)
  from the beginning of the buffer
- Added a number of out of bounds memory access asserts, which
  helped debug this issue.

Fixed failures in:
dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.*
Note: The only failures left in that category are related to filtering
sRGB images, which most likely happens in the wrong colorspace.

Tests: dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.*

Bug b/119620767

Change-Id: I6f18271cb23070eb8f2de3b1d5b35b7021c0ca8b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27229
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoDedicated allocation verification
Alexis Hetu [Fri, 15 Mar 2019 16:12:00 +0000 (12:12 -0400)]
Dedicated allocation verification

Added the ability to set the VkMemoryDedicatedRequirements
structure in vkGetBufferMemoryRequirements2. Note that this
cl adds no support for dedicated allocations.

Passes all tests in the Tests section below.

Change-Id: Ib5bc2775e66e810d1ca2d52672eb2cca71e85f5e
Tests: dEQP-VK.api.buffer.dedicated_alloc.*
Tests: dEQP-VK.api.buffer_view.create.*
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27290
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoReactor: Add tests for casts from C to Reactor types
Ben Clayton [Fri, 15 Mar 2019 09:56:47 +0000 (09:56 +0000)]
Reactor: Add tests for casts from C to Reactor types

Change-Id: I20e249c56167fc9c37adc02b798cb60781cc757b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27251
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoSpirvRoutine: Add activeLaneMask to conditionally load / store per lane.
Ben Clayton [Tue, 12 Mar 2019 20:05:04 +0000 (20:05 +0000)]
SpirvRoutine: Add activeLaneMask to conditionally load / store per lane.

Use this to disable reads and writes on compute shader lanes that are not part of the subgroup.

Bug: b/126871859
Bug: b/128527271
Change-Id: Idd7ad240a8f09e6e47db34b6ed5b0ec7ba959d39
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27009
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agoReactor: Fix cast from bool -> RValue<Bool>.
Ben Clayton [Fri, 15 Mar 2019 10:06:06 +0000 (10:06 +0000)]
Reactor: Fix cast from bool -> RValue<Bool>.

This was previously taking the IntLiteral<T> path, resulting in an integer type instead of a bool type.

Bug: b/128636885
Change-Id: I1a36a7ba0e7009431dc44645f90454d389be721b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27250
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoVkDebug: Update macros to address issues in b/127433389
Ben Clayton [Tue, 5 Mar 2019 11:57:31 +0000 (11:57 +0000)]
VkDebug: Update macros to address issues in b/127433389

Also add WARN() and ASSERT_MSG().

Bug: b/127433389
Change-Id: I2549e9a79b3168cfc419d6564f0c111f95246452
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26148
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoSpirvShader: Implement OpBranch
Ben Clayton [Wed, 13 Mar 2019 19:57:42 +0000 (19:57 +0000)]
SpirvShader: Implement OpBranch

Bug: b/128527271
Change-Id: I367ed0d578e36a56baf4b8c4c2256ee4de1297cc
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27097
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoReactor: Add even more RR_WATCH_FMT_ overloads
Ben Clayton [Wed, 13 Mar 2019 11:24:46 +0000 (11:24 +0000)]
Reactor: Add even more RR_WATCH_FMT_ overloads

Yes, I really do find myself using 12 in a single call.

Change-Id: Ibbf21d9a400b0f79b2b7385588d6441ea710b3ac
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27091
Tested-by: Ben Clayton <bclayton@google.com>
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoRegres: Update test lists @ 1b8cd2d9
SwiftShader Regression Bot [Fri, 15 Mar 2019 05:44:07 +0000 (05:44 +0000)]
Regres: Update test lists @ 1b8cd2d9

Change-Id: I313c00b299230827cc2bd4c174e840dcd923fae9
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27249
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoCopy build artifacts to CMAKE_BINARY_DIR.
Dan Sinclair [Thu, 14 Mar 2019 14:51:05 +0000 (10:51 -0400)]
Copy build artifacts to CMAKE_BINARY_DIR.

Currently when the build executes it copies things like .so files and
the vulkan .icd file to the CMAKE_CURRENT_SOURCE_DIR/out/<platform>
directory. This is fine in a normal swiftshader build but if you embed
swiftshader into another project this ends up being something like:
third_party/swiftshader/out/<platform> which is not what is desired.

This CL changes the files to get written to the CMAKE_BINARY_DIR. This
means it will go into the directory form which cmake was run. This means
for a build setup as per the README, build/<platform>.

This also allows generating different .icd and .so files for Release and
Debug if you setup different build directories.

Bug: b/123752208
Change-Id: If2e8c70ca2d35351c02f7bbe56ff77a04d538373
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27188
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoSpirvShader: Split instructions into blocks.
Ben Clayton [Wed, 13 Mar 2019 19:48:31 +0000 (19:48 +0000)]
SpirvShader: Split instructions into blocks.

First step towards flow control.

Bug: b/128527271
Change-Id: I7e031ccc22148e37dc058150edc93d28de54f4c4
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27096
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoFix allocation of low-alignment memory
Nicolas Capens [Thu, 14 Mar 2019 18:52:59 +0000 (14:52 -0400)]
Fix allocation of low-alignment memory

posix_memalign() returns EINVAL if the alignment argument is not a
multiple of sizeof(void*). Use regular malloc() for those cases.
malloc() is specified to allocate memory which is "suitably aligned for
any built-in type".

Bug b/128618202

Change-Id: Ibee07be89f2a5bd6be770c35710b20b0c752dfd1
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27228
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
5 years agoSpirvShader: Fix for integer overflow in SDiv and SMod.
Ben Clayton [Thu, 14 Mar 2019 19:32:41 +0000 (19:32 +0000)]
SpirvShader: Fix for integer overflow in SDiv and SMod.

See b/128614198 for context.

Tests: dEQP-VK.glsl.operator.binary_operator.div.*ivec*
Tests: dEQP-VK.glsl.operator.binary_operator.mod.*ivec*
Bug: b/128614198
Change-Id: I3c517a18ce003466b1ba382f1896b356e543f5d5
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27248
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoSpirvShader: ObjectID -> Object::ID, TypeID -> Type::ID.
Ben Clayton [Wed, 13 Mar 2019 18:19:20 +0000 (18:19 +0000)]
SpirvShader: ObjectID -> Object::ID, TypeID -> Type::ID.

Minor bit of refactoring to reduce the number of SpirvShader child typenames.

Bug: b/126126820
Change-Id: I0a3ae5f10b34eac2ae648ccf5f4b15c67bca0a13
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27094
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoProtect against DBZ in OpUMod also
Chris Forbes [Thu, 14 Mar 2019 15:15:25 +0000 (08:15 -0700)]
Protect against DBZ in OpUMod also

Bug: b/127962486
Test: dEQP-VK.glsl.operator.binary_operator.mod.*
Change-Id: I6aee79c99b50f936512e9d9b4b51a07006445694
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27208
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoUpdate CONTRIBUTORS
Nicolas Capens [Wed, 13 Mar 2019 21:20:34 +0000 (17:20 -0400)]
Update CONTRIBUTORS

Change-Id: Icd6c52252988cd9765bf28fe2d91f44867df88c6
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27110
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
5 years agoReactor: Add a PrintValue for Bool types.
Ben Clayton [Tue, 12 Mar 2019 20:05:43 +0000 (20:05 +0000)]
Reactor: Add a PrintValue for Bool types.

Change-Id: I34eb45ef6c69536353449c980745a00afc65de46
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27010
Tested-by: Ben Clayton <bclayton@google.com>
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoSpirvShader: Fix int DBZ failures by masking away zeros.
Ben Clayton [Thu, 14 Mar 2019 12:21:53 +0000 (12:21 +0000)]
SpirvShader: Fix int DBZ failures by masking away zeros.

The Vulkan spec says:
"division by zero produces an unspecified result but must not lead to Vulkan interruption or termination".

Tests: dEQP-VK.glsl.operator.binary_operator.mod.*
Tests: dEQP-VK.glsl.operator.binary_operator.div.*
Bug: b/127962486
Change-Id: I62e7c29a6e944512db7a8a96b0bb87488aa7be73
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27171
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoSpirvShader: Replace Intermediate::operator[] with typed getters.
Ben Clayton [Fri, 8 Mar 2019 09:32:34 +0000 (09:32 +0000)]
SpirvShader: Replace Intermediate::operator[] with typed getters.

Simplifies things throughout the cpp.

Bug: b/128539387
Change-Id: I7abbe4731d82877204976d654859cba88d1a3047
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26531
Tested-by: Ben Clayton <headlessclayton@gmail.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agoSpirvShader: Overload Intermediate::emplace for Int and UInt.
Ben Clayton [Fri, 8 Mar 2019 08:37:24 +0000 (08:37 +0000)]
SpirvShader: Overload Intermediate::emplace for Int and UInt.

Removes a load of noise throughout the cpp file.

Bug: b/128539387
Change-Id: Ic9fa9361c4b7dc6258833e2ce58db50b5e81b11d
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26530
Tested-by: Ben Clayton <headlessclayton@gmail.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agoRegres: Update test lists @ 868ed908
SwiftShader Regression Bot [Thu, 14 Mar 2019 05:45:01 +0000 (05:45 +0000)]
Regres: Update test lists @ 868ed908

Change-Id: Ic0153dc04839fe44093091564dc181d394b32d12
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27099
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoAdd support for remaining GLSL builtin geometric functions
Chris Forbes [Thu, 14 Mar 2019 00:39:45 +0000 (17:39 -0700)]
Add support for remaining GLSL builtin geometric functions

Bug: b/127804400
Test: dEQP-VK.glsl.operator.geometric.*
Change-Id: I63d852c2978be4c1966886cf24c489cc7c286964
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27128
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoRefactor common Reactor implementations
Nicolas Capens [Wed, 13 Mar 2019 03:00:24 +0000 (23:00 -0400)]
Refactor common Reactor implementations

Some functions in LLVMReactor.cpp and SubzeroReactor.cpp were identical
and have been moved into a common Reactor.cpp.

Bug swiftshader:21

Change-Id: Ib079757f9e35f83b1103e2791227f02775e034d3
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27068
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
5 years agoChange scissor type from sw::Rect to VkRect2D
Alexis Hetu [Wed, 13 Mar 2019 14:33:10 +0000 (10:33 -0400)]
Change scissor type from sw::Rect to VkRect2D

Removed sw::Rect from Renderer.

Bug b/126883332

Change-Id: I01ff418745c19739b4692c7cec56ae54fe91a8fc
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27109
Tested-by: Alexis Hétu <sugoi@google.com>
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoRemove old Framebuffer code from Vulkan
Alexis Hetu [Wed, 13 Mar 2019 12:05:02 +0000 (08:05 -0400)]
Remove old Framebuffer code from Vulkan

Framebuffer related code is being implemented properly
in VkSurfaceKHR.cpp and related files, so old OpenGL
framebuffer code can be removed to avoid confusion.

Bug b/124265819

Change-Id: I08a87c17e8b029c6f82d252e1ff1ef810ab200ae
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27108
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoRemove precacheDLL
Alexis Hetu [Tue, 12 Mar 2019 20:32:04 +0000 (16:32 -0400)]
Remove precacheDLL

Remove leftover variables not cleaned up in:
https://swiftshader-review.googlesource.com/c/SwiftShader/+/7250

Change-Id: Ia2e66c15e5cadeed32f564c60d5105c17319e9d4
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27028
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years ago[cmake] Check for deps before adding.
Dan Sinclair [Mon, 11 Mar 2019 14:48:19 +0000 (10:48 -0400)]
[cmake] Check for deps before adding.

When embedding SwitftShader into a third party application, the top
level cmake files may already include googletest and SPIRV-Tools. This
CL updates the SwiftShader tests to only try to pull in googletest if
the `gtest` target is not found and only pull in SPIRV-Tools if the
`SPIRV-Tools` target is not found.

Change-Id: I3c3ebb528725017dbbb80aa05b01ee2de8d4a2d1
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26788
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Dan Sinclair <dsinclair@google.com>
5 years agoRemoved references to sw::Surface
Alexis Hetu [Tue, 12 Mar 2019 18:19:22 +0000 (14:19 -0400)]
Removed references to sw::Surface

Removed sw::Surface dependency from:
- Blitter
- Context
- PixelProcessor
- PixelRoutine
- Renderer
- VkFramebuffer

No behavior changes should be happen with this cl.

Bug b/126883332

Change-Id: I4146f043ba8e5008eb3d44465c26a0f34a2e1acc
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26969
Tested-by: Alexis Hétu <sugoi@google.com>
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agosrc/Pipeline/ComputeProgram: Remove unused parameter numDescriptorSets
Ben Clayton [Tue, 12 Mar 2019 15:58:02 +0000 (15:58 +0000)]
src/Pipeline/ComputeProgram: Remove unused parameter numDescriptorSets

Change-Id: I1881916302d6652144138106d0744e9bbd2b45c8
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27008
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoRegres: Update test lists @ bea47513
SwiftShader Regression Bot [Wed, 13 Mar 2019 07:03:50 +0000 (07:03 +0000)]
Regres: Update test lists @ bea47513

Change-Id: I5d87130b1c52cd7c3e2a21d1a1f0fcbe6d2b40ed
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27049
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoAdd support for D16_UNORM depth test & write
Chris Forbes [Tue, 12 Mar 2019 21:50:55 +0000 (14:50 -0700)]
Add support for D16_UNORM depth test & write

D16_UNORM depth operations are performed in fixed point to avoid quirks
of ushort <-> float roundtrip

Some slight oddities to work around missing primitives:
- We only have CmpEQ, CmpGT. This matches SSE hardware reality.
  Everything else is made out of negations and operand swaps.
- We only have *signed* CmpGT. Make an unsigned CmpGT by biasing both
  16-bit operands by -0x8000.
- In non-quad-layout we don't have a good way to separate .xy and .zw
  halfs; reading via masked short4 reads, writing via individual
  component writes.

Bug: b/128363727
Test: dEQP-VK.pipeline.depth.format.*
Change-Id: I9c8b249470a9c91589c91135988dc4d1a58bbc5f
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27030
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoRemove very early depth test
Chris Forbes [Tue, 12 Mar 2019 20:42:28 +0000 (13:42 -0700)]
Remove very early depth test

Bug: b/128363727
Change-Id: Ia595876610b077c4be366174264de7a55f14dc4c
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27029
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoSubzero MulHigh implementation for Int4/UInt4
Chris Forbes [Fri, 1 Mar 2019 22:18:30 +0000 (14:18 -0800)]
Subzero MulHigh implementation for Int4/UInt4

Also add implementations of multiplication and right shift for Long type.

Bug b/126873455

Change-Id: I9952c2b9a3feca6a7741cd02e2295340935e4447
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/25988
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agoWait semaphores for VkQueuePresentKHR
Hernan Liatis [Tue, 12 Mar 2019 18:34:24 +0000 (11:34 -0700)]
Wait semaphores for VkQueuePresentKHR

Bug: b/124265819
Change-Id: I7c84c3be8fb13a4ef798f90b8c610ebeafa82b5c
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26970
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Hernan Liatis <hliatis@google.com>
5 years agoHandle oldSwapchains
Hernan Liatis [Sat, 9 Mar 2019 01:57:41 +0000 (17:57 -0800)]
Handle oldSwapchains

When we create a new swapchain, we can pass in a
parent swapchain from the same surface. The old
swapchain is no longer associated with the surface
and "retires" by deleting all non-acquired images.

Bug: b/124265819
Change-Id: I31315045c926b929483d1b6cb1fc3d9f7aa87b94
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26668
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Hernan Liatis <hliatis@google.com>
5 years agoRemove complementary depth buffer option for Vulkan
Chris Forbes [Tue, 12 Mar 2019 20:01:45 +0000 (13:01 -0700)]
Remove complementary depth buffer option for Vulkan

Bug: b/128363727
Change-Id: Id75e138deda980f57b7bd07192b1353b2b414fd8
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26988
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoFix resizing issues
Hernan Liatis [Wed, 6 Mar 2019 23:31:04 +0000 (15:31 -0800)]
Fix resizing issues

In summary, this change associates a 1:1
correspondance between a VkImage and XImage.
This will fix resize issues as well as prepare
to implement createInfo->oldSwapchain.

Bug: b/124265819
Change-Id: I42e8e1e7b5c9a5b64820156603dca10e2ab828ca
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26368
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Hernan Liatis <hliatis@google.com>
5 years agoWarning fix
Alexis Hetu [Tue, 12 Mar 2019 15:50:20 +0000 (11:50 -0400)]
Warning fix

Removed unused variable

Change-Id: I9236d02e04fb58a081c608d16f4e1eadf81dde16
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26949
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
5 years agoFix Visual Studio build of VulkanUnitTests
Nicolas Capens [Tue, 12 Mar 2019 15:23:28 +0000 (11:23 -0400)]
Fix Visual Studio build of VulkanUnitTests

- Make VulkanUnitTests depend on SPIRV-Tools.
- Build Vulkan DLLs but don't link statically with VulkanUnitTests.
- Don't use Unicode character set.
- Statically link runtime library.
- Fix narrowing conversion from 'VkCommandBufferUsageFlagBits' to
  'VkCommandBufferUsageFlags'.

Bug swiftshader:125

Change-Id: I7dbdc25c829cc76b5e05cd57cd9f85bf2d4e0903
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26948
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
5 years agovkAcquireNextImageKHR and vkQueuePresentKHR
Hernan Liatis [Fri, 1 Mar 2019 23:06:13 +0000 (15:06 -0800)]
vkAcquireNextImageKHR and vkQueuePresentKHR

The following changes will allow to present
to the screen. However, do not adjust the
size of the window.

Bug: b/124265819
Change-Id: Iaa42f458af9555e91d47238397112324ec080a67
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26008
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Hernan Liatis <hliatis@google.com>
5 years agoPlumb depth format through to PixelProcessor::State
Chris Forbes [Tue, 12 Mar 2019 01:28:55 +0000 (18:28 -0700)]
Plumb depth format through to PixelProcessor::State

I need this in order to support depth formats that arent D32F.

Bug: b/128363727
Change-Id: I7016351207e433e668053ebaf4dbeb9f2f7936f2
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26888
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>

5 years agoFix image format properties query in various edge cases
Chris Forbes [Mon, 11 Mar 2019 21:34:12 +0000 (14:34 -0700)]
Fix image format properties query in various edge cases

- Many cases where sampleCounts is required to be VK_SAMPLE_COUNT_1_BIT by spec
- Missing feature flags for ETC2 formats
- Max array layers must be 1 for 3D

See 38.1.1 Supported Sample Counts for details of sample count
requirements

Bug: b/128344974
Test: dEQP-VK.api.info.image_format_properties*
Change-Id: I3ffe747a8cc8d06e0d33aa0937bd2b7ecd045ff5
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26871
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoAdd utility functions from sw::Surface to vk::Format
Alexis Hetu [Mon, 11 Mar 2019 21:34:13 +0000 (17:34 -0400)]
Add utility functions from sw::Surface to vk::Format

In order to eventually remove sw::Surface, some utility
functions used by vk::Image were copied to vk::Format.

Bug b/126883332

Change-Id: Ie8404b70adc3336d536dcd5c0ec26b63e46c5174
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26872
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agotests/regres/export_to_sheets: Fix off-by-one in loop
Ben Clayton [Tue, 12 Mar 2019 08:55:15 +0000 (08:55 +0000)]
tests/regres/export_to_sheets: Fix off-by-one in loop

We weren't looking at the most recent change.
Kinda important when that's typically the new test list you're trying to export.

Change-Id: I0e312dbde0ae54feb0641a658eebc73bbdb47eaa
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26928
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agotests: Add a unit test for a simple memcpy compute shader
Ben Clayton [Fri, 1 Mar 2019 14:33:35 +0000 (14:33 +0000)]
tests: Add a unit test for a simple memcpy compute shader

Bug: b/126871859
Change-Id: I0b3db6c033419a2ad54453d470960330d4f337cc
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/25909
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoVulkan: Very rough first implementation of compute shaders
Ben Clayton [Fri, 8 Mar 2019 12:02:05 +0000 (12:02 +0000)]
Vulkan: Very rough first implementation of compute shaders

This is by no means finished:
* ComputeProgram holds the codegen and the invoke logic. ComputeProgram::run() should probably be moved somewhere else (maybe Renderer?).
* ComputeProgram::run() is currently fully single threaded.
* The compute routines are currently not cached.

With that said, this is enough to start passing a whole bunch of dEQP compute tests.

Test: *.compute.*
Bug: b/126871859
Change-Id: Ic6a76826b2fec0d34d54e0bed564b360ea0610c0
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26551
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoAdd vulkan unit tests to Kokoro
Ben Clayton [Mon, 11 Mar 2019 15:11:24 +0000 (15:11 +0000)]
Add vulkan unit tests to Kokoro

Change-Id: I6e695dd5221da6d9f7f198bc2af8aee00eda8881
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26808
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoRegres: Update test lists @ 3364227f
SwiftShader Regression Bot [Tue, 12 Mar 2019 06:38:51 +0000 (06:38 +0000)]
Regres: Update test lists @ 3364227f

Change-Id: I15fb0452789a7a3e3f84453a1b2d9a1b969d510f
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26908
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoAllow the Blitter to clear and blit vk::Image objects directly
Alexis Hetu [Fri, 1 Mar 2019 16:55:59 +0000 (11:55 -0500)]
Allow the Blitter to clear and blit vk::Image objects directly

The sw::Surface object was the intermediate representation of an
image used between the vk::Image and the Blitter. This cl removes
the need for an intermediate representation by having the Blitter
use the vk::Image directly.

There should be no regression for the clear and blit tests.

Bug b/126883332

Change-Id: Icbc15470e3ad112ed78f4f62d6d82c66e3e37a20
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/25928
Tested-by: Alexis Hétu <sugoi@google.com>
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agotests: Add a Driver class to abstract the vulkan implementation
Ben Clayton [Fri, 1 Feb 2019 13:08:23 +0000 (13:08 +0000)]
tests: Add a Driver class to abstract the vulkan implementation

The idea here is that we can build a number of fine granularity SPIR-V tests, which we can also verify against any optional system Vulkan hardware.

This CL adds support for building and running the Vulkan unit tests on mac and linux.

Bug: b/123749916
Change-Id: I01a4e2a914ffd5473d271013957fa3dddbc43645
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/24328
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoAdd reactor unit tests to Kokoro
Nicolas Capens [Mon, 11 Mar 2019 14:39:51 +0000 (10:39 -0400)]
Add reactor unit tests to Kokoro

Bug b/123360006

Change-Id: I4132ebf474f8055554126529839c33fd87d75499
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26768
Tested-by: Nicolas Capens <nicolascapens@google.com>
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoRefactor emulated vector type handling for LLVM
Nicolas Capens [Fri, 8 Mar 2019 22:26:43 +0000 (17:26 -0500)]
Refactor emulated vector type handling for LLVM

- Add clarifying comments.
- Add self-explanatory helper functions.
- Fix typeSize to handle all Reactor types.
- Use uintptr_t base type for emulated type enum.
  Prevents 0x########00000000 from being interpreted as emulated type.

Bug b/126028338

Change-Id: Ib38cf9b59f58c0f6046f9c84a6152849791bb4ed
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26648
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
5 years agoSpirvShader: Implement SMod.
Ben Clayton [Fri, 8 Mar 2019 12:04:00 +0000 (12:04 +0000)]
SpirvShader: Implement SMod.

Test: *smod*
Bug: b/126873455
Change-Id: If946e72d23aa9386b85cffe96b02ab63195f0a24
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26549
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoAdd test/regres/export_to_sheets.go
Ben Clayton [Mon, 11 Mar 2019 11:44:43 +0000 (11:44 +0000)]
Add test/regres/export_to_sheets.go

Exports the latest test data to a Google Sheets document.

Change-Id: Ia1b38464daf7117da571d536e7ff029023b9de58
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26748
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoRename Win32 configuration to x86
Nicolas Capens [Fri, 8 Mar 2019 22:45:37 +0000 (17:45 -0500)]
Rename Win32 configuration to x86

This causes Visual Studio to default to the x64 configuration, which is
64-bit instead of 32-bit.

Change-Id: Ifb1246216c726e6ad0dcc7891f2f3a8f89aeff7c
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26649
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
5 years agoSpirvShader: Handle OpTypeRuntimeArray in WalkAccessChain.
Ben Clayton [Fri, 8 Mar 2019 16:51:42 +0000 (16:51 +0000)]
SpirvShader: Handle OpTypeRuntimeArray in WalkAccessChain.

Fixes tests that turned from PASS -> CRASH by adding compute shader support.

Bug: b/120799499
Change-Id: I72190eef98223851cba3d61a98d54ab2f6e2a0a7
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26553
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agoRegres: Update test lists @ ebefaf7c
SwiftShader Regression Bot [Mon, 11 Mar 2019 07:30:57 +0000 (07:30 +0000)]
Regres: Update test lists @ ebefaf7c

Change-Id: If451dc09203631737739b30d385fbf8a215b2b46
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26728
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoRegres: Drop support for tests results only on new change
Ben Clayton [Fri, 8 Mar 2019 19:29:49 +0000 (19:29 +0000)]
Regres: Drop support for tests results only on new change

The test list from the latest patchset is now run on the parent.
Missing tests are a bug.

Change-Id: I149e235968acad4988d0fcff78d8a8796aaf118c
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26559
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoRegres: Scan commit message for additional test lists.
Ben Clayton [Fri, 8 Mar 2019 19:26:24 +0000 (19:26 +0000)]
Regres: Scan commit message for additional test lists.

Change-Id: Ib0beec96a6efafa0ee6fb8a43e15142206d3cd4d
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26558
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoRegres: Run latest PS testlists on parent.
Ben Clayton [Fri, 8 Mar 2019 17:10:48 +0000 (17:10 +0000)]
Regres: Run latest PS testlists on parent.

This is better than running potentially two different test lists for both.

Requires caching the parent test results with the testlist's hash as a cache key.

Change-Id: Ic153e65395fc1c3f02a66bbb1df60731ce28901b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26557
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoSpirvShader: Fix unused local warning in release builds.
Ben Clayton [Fri, 8 Mar 2019 09:45:25 +0000 (09:45 +0000)]
SpirvShader: Fix unused local warning in release builds.

Bug: b/123933266
Change-Id: I4585c881ea7328b03b7c98bd5b4c255a399a0a70
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26532
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoRegres: Update test lists @ 856ebf87
SwiftShader Regression Bot [Sat, 9 Mar 2019 06:36:21 +0000 (06:36 +0000)]
Regres: Update test lists @ 856ebf87

Change-Id: I6cd54eefee8e4fe0a20799bf6bce85ddd53df9d5
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26708
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoAdd support for OpVectorTimesScalar
Chris Forbes [Fri, 8 Mar 2019 23:30:18 +0000 (15:30 -0800)]
Add support for OpVectorTimesScalar

This gets us the final few cases in the glsl multiplies group.

Test: dEQP-VK.glsl.operator.binary_operator.mul.*
Bug: b/126873455
Change-Id: Id9ec4ad1754a7e63c8d7e0aa0a0b0b156a03b024
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26651
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoAdd support for more ExtInst instructions
Chris Forbes [Fri, 8 Mar 2019 22:50:44 +0000 (14:50 -0800)]
Add support for more ExtInst instructions

- FMin
- FMax
- SMin
- SMax
- UMin
- UMax
- Step
- SmoothStep
- FMix
- FClamp
- SClamp
- UClamp
- FSign
- SSign

Test: dEQP-VK.glsl.operator.common_functions.*
Bug: b/127804400
Change-Id: Ie136d8f0386f6a1db9acbf4e261851ce696e2d95
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26650
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoAdd support for Trunc,Ceil,Fract,Round,RoundEven
Chris Forbes [Fri, 8 Mar 2019 21:36:40 +0000 (13:36 -0800)]
Add support for Trunc,Ceil,Fract,Round,RoundEven

Mostly trivial; exception is RoundEven, for which I borrowed the
implementation from the GLES side.

Test: dEQP-VK.glsl.operator.common_functions.*
Bug: b/127804400
Change-Id: I889c3750ebdbc078723890488cf44d89ea77103b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26628
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoAdd support for OpLogicalEqual, OpLogicalNotEqual
Chris Forbes [Fri, 8 Mar 2019 20:16:57 +0000 (12:16 -0800)]
Add support for OpLogicalEqual, OpLogicalNotEqual

Test: dEQP-VK.glsl.operator.bool_compare.*
Test: dEQP-VK.glsl.operator.binary_operator.equal.*
Test: dEQP-VK.glsl.operator.binary_operator.not_equal.*
Bug: b/126870789
Change-Id: I9d33444d67792274d8027b7d1632235533cfc079
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26574
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoAdd support for GLSLstd450Floor ExtInst
Chris Forbes [Fri, 8 Mar 2019 20:02:27 +0000 (12:02 -0800)]
Add support for GLSLstd450Floor ExtInst

Bug: b/127804400
Test: dEQP-VK.glsl.operator.common_functions.floor.*
Change-Id: Iaefeef8f006673e55d4f85184d7782ac0aafb314
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26572
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
5 years agoBuild fix
Alexis Hetu [Fri, 8 Mar 2019 20:15:20 +0000 (15:15 -0500)]
Build fix

Bug swiftshader:125

Change-Id: If24564a16d880a11e782e5f6b4f035e612255076
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26573
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agoMove Blitter ownership from Image to Device
Alexis Hetu [Wed, 27 Feb 2019 17:54:52 +0000 (12:54 -0500)]
Move Blitter ownership from Image to Device

The blitter has a cache which can allow us to reuse already used
routines, so it should be kept in a central location. For that
reason, the blitter ownership was moved from the Image object to
the Device object.

Bug b/117974925

Change-Id: I825853c381dcbc04701b1d9e7dfa376108294221
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/25728
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoAdd support for GLSLstd450Cross ExtInst
Chris Forbes [Fri, 8 Mar 2019 19:31:31 +0000 (11:31 -0800)]
Add support for GLSLstd450Cross ExtInst

Fixes dEQP-VK.glsl.operator.geometric.cross.*

Bug: b/127804400
Change-Id: I62337ba547048426c76adb1e90a1ebc4079e2a3d
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26571
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoDescriptor Update Template implementation
Alexis Hetu [Tue, 29 Jan 2019 19:09:36 +0000 (14:09 -0500)]
Descriptor Update Template implementation

Basic implementation of descriptor update template.
Only supports VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET template type.

Bug b/123244275

Change-Id: Iaf7c1e52bee6d2683a2f34bd2f780396aa953442
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26568
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agoFix OpVectorShuffle with mixed vector widths
Chris Forbes [Fri, 8 Mar 2019 18:41:05 +0000 (10:41 -0800)]
Fix OpVectorShuffle with mixed vector widths

There is a subtle trap here -- almost all SPIRV instructions require vector
widths to match, but for OpVectorShuffle, the widths of the result
vector and the two sources are completely independent.

Fixes dEQP-VK.glsl.operator.unary_operator.plus.highp_vec2_vertex and many others.

Bug: b/127959969
Change-Id: Iaa2cc09fb510fa2ab07a6f53599af8dade553a9a
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26570
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoRegres: Fix bad binning of QualityWarnings
Ben Clayton [Fri, 8 Mar 2019 17:11:12 +0000 (17:11 +0000)]
Regres: Fix bad binning of QualityWarnings

Change-Id: I0fba3c2969cd61c8e7b6e30628473944f2e5a986
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26555
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>