OSDN Git Service

android-x86/external-swiftshader.git
5 years agoRemove remaining UBO & constants junk from DrawData
Chris Forbes [Fri, 8 Mar 2019 20:43:00 +0000 (12:43 -0800)]
Remove remaining UBO & constants junk from DrawData

This isn't used. We have Ben's shiny new descriptor-based UBO system now
instead.

Change-Id: If971e6bce3ddfb149d33dc5c42294d7b75c31888
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26609
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 agoRename Intermediate::emplace() to move()
Nicolas Capens [Wed, 20 Mar 2019 01:38:44 +0000 (21:38 -0400)]
Rename Intermediate::emplace() to move()

Since we're essentially assigning from one rvalue to another, move()
seems to describe the intent better and even matches
register-to-register move instructions.

Bug b/128539387

Change-Id: I409b3ede9578a100f25ea92e61f7492a38341ca4
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26869
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agoEnsure image strides are always suitable for the rasterizer
Chris Forbes [Thu, 21 Mar 2019 18:23:28 +0000 (11:23 -0700)]
Ensure image strides are always suitable for the rasterizer

Bug: b/129069789
Test: dEQP-VK.glsl.derivate.*
Change-Id: Iac1b5ed51dae0f6d8937b2162eb0a662d02b34ba
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27729
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 agovkCmdExecuteCommands implementation
Alexis Hetu [Mon, 18 Mar 2019 20:16:36 +0000 (16:16 -0400)]
vkCmdExecuteCommands implementation

Basic support for executing secondary command buffers, without
support for any inheritance features.

Bug b/118619338

Change-Id: Ie3453018a45a722ecfa4f1acd20c95442fbb3d9b
Tests: dEQP-VK.memory.pipeline_barrier.host_write_transfer_src.*
Tests: dEQP-VK.api.command_buffers.allocate_single_secondary
Tests: dEQP-VK.api.command_buffers.allocate_many_secondary
Tests: dEQP-VK.api.command_buffers.trim_command_pool_secondary
Tests: dEQP-VK.api.command_buffers.record_single_secondary
Tests: dEQP-VK.api.command_buffers.record_many_secondary
Tests: dEQP-VK.api.command_buffers.submit_twice_secondary
Tests: dEQP-VK.api.command_buffers.record_one_time_submit_secondary
Tests: dEQP-VK.api.command_buffers.secondary_execute
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27493
Tested-by: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoFix provoking vertex convention and remove configurability
Chris Forbes [Mon, 18 Mar 2019 22:01:48 +0000 (15:01 -0700)]
Fix provoking vertex convention and remove configurability

- secondaryColor control only made sense in fixed-function
- Vulkan provoking vertex is always the first vertex

Bug: b/125909515
Test: dEQP-VK.rasterization.flatshading.*
Change-Id: I9b6826e093076ee7ca5ef6deaf1b1fbd1c2f39e3
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27509
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoSynchronize at end of renderpass
Chris Forbes [Thu, 21 Mar 2019 15:36:11 +0000 (08:36 -0700)]
Synchronize at end of renderpass

Heavy-handed implementation of implicit or explicit VkSubpassDependency
to VK_SUBPASS_EXTERNAL after a subpass.

Fixes various test flake.

Test: dEQP-VK.glsl.derivate.*
Change-Id: I9cb60828e6aff344e28dd7a8e1a867b5c8a11c22
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27708
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 agosw::Surface removed
Alexis Hetu [Mon, 18 Mar 2019 18:24:38 +0000 (14:24 -0400)]
sw::Surface removed

There are no more dependencies on sw::Surface, it can now be removed.

Bug b/126883332

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

5 years agosw::Surface references removed from sampling code
Alexis Hetu [Mon, 18 Mar 2019 15:30:01 +0000 (11:30 -0400)]
sw::Surface references removed from sampling code

vk::Format was expanded to include more format related checks and the
sampler object now uses them. Whether or not the Sampler code ends up
actually being used is unsure, but the code has been updated to use
vk::Image instead of sw::Surface. This should be the last sw::Surface
reference in Vulkan code.

Bug b/126883332

Change-Id: Ib1b4c3ce87d0fdad5ac7238b7e86211a499871a5
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27490
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 agoBasic CommandBuffer::waitEvents implementation
Alexis Hetu [Fri, 15 Mar 2019 18:45:45 +0000 (14:45 -0400)]
Basic CommandBuffer::waitEvents implementation

Implemented waitEvents as a sync operation, like pipeline barriers,
since, as the Vulkan spec states:
"vkCmdWaitEvents is used with vkCmdSetEvent to define a memory
 dependency between two sets of action commands, roughly in the
 same way as pipeline barriers, but split into two commands such
 that work between the two may execute unhindered."

Only the pEvents parameter is supported and currently doesn't support
pMemoryBarrier, pBufferMemoryBarriers or pImageMemoryBarriers.

Bug b/118620868

Change-Id: I30ccc65c65dfc7d9a99e25ebb535061c618375cb
Tests: dEQP-VK.api.command_buffers.record_simul_use_primary
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27348
Tested-by: Alexis Hétu <sugoi@google.com>
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoRefactor variable type lookup
Nicolas Capens [Tue, 19 Mar 2019 20:22:35 +0000 (16:22 -0400)]
Refactor variable type lookup

Previously the pointee type of OpVariable was determined starting from
the result ID. It just obtains the 'Object' which has the type collected
from the OpVariable instruction itself. So the object lookup can be
skipped by using the latter directly again.

Bug b/129000021

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

5 years agoRegres: Update test lists @ aff2dd06
SwiftShader Regression Bot [Thu, 21 Mar 2019 05:52:15 +0000 (05:52 +0000)]
Regres: Update test lists @ aff2dd06

Change-Id: I250bf1da0e6f1556af67f320b7cafabc4724f34f
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27572
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoAdd support for derivative instructions
Chris Forbes [Wed, 20 Mar 2019 21:50:24 +0000 (14:50 -0700)]
Add support for derivative instructions

- OpDPdx
- OpDPdy
- OpFwidth
- OpDPdxCoarse
- OpDPdyCoarse
- OpFwidthCoarse
- OpDPdxFine
- OpDPdyFine
- OpFwidthFine

We have flexibility in how we implement the OpDPdx, OpDPdy and OpFwidth
instructions; they can return either coarse or fine derivatives.
I have chosen to make them equivalent to the coarse derivatives since
those are slightly cheaper to compute.

Added a static assert to ensure we revisit these when considering other
vector widths.

Bug: b/129002115
Test: dEQP-VK.glsl.derivate.*
Change-Id: I75224c1e77c1eefac4f219be5662836daa86a098
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27689
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 agoVulkan: Plumb bound descriptor sets down to SpirvRoutine.
Chris Forbes [Tue, 19 Mar 2019 23:48:03 +0000 (16:48 -0700)]
Vulkan: Plumb bound descriptor sets down to SpirvRoutine.

Choice of tests is slightly odd -- but there are a number of tests in
this group which *don't* use the derivative instructions (glslang is
smart enough to not emit them when the expression is known to be uniform).

Bug: b/126330097
Test: dEQP-VK.glsl.derivate.*
Test: dEQP-VK.ubo.*
Change-Id: I8864149104f2ea9b62c75ceae59da4ff8adebc32
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26548
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 agoFix MSVC build
Nicolas Capens [Wed, 20 Mar 2019 19:15:46 +0000 (15:15 -0400)]
Fix MSVC build

Was wrongly assuming that if ..\deqp exists, the build directory must
be deqp\build.

Change-Id: I0e071565d9c41940efbcd4453de70f2994ad1be5
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27652
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
5 years agoFactor out vertex attribute binding from Draw*::play
Chris Forbes [Sat, 9 Mar 2019 01:10:41 +0000 (17:10 -0800)]
Factor out vertex attribute binding from Draw*::play

I'm about to build some more on top of this; don't want to write it
multiple times.

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

5 years agoDon't treat SIMD::Float preferentially
Nicolas Capens [Tue, 19 Mar 2019 18:28:18 +0000 (14:28 -0400)]
Don't treat SIMD::Float preferentially

Intermediate::Scalar was defined as RValue<SIMD::Float>, even though it
can hold integers as well. Use abstract Reactor values instead which
don't have a statically defined type.

This change does not yet avoid bitcasting on access. The EmitLoad()
implementation still assumes values come in as float.

Bug b/128539387

Change-Id: I18f449ebf68db7ddd81679d6d028911e6c02fc38
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26868
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
5 years agoRegres: Update test lists @ f2564656
SwiftShader Regression Bot [Wed, 20 Mar 2019 07:56:55 +0000 (07:56 +0000)]
Regres: Update test lists @ f2564656

Change-Id: Ibfb2c1126253d98d15016b464e79e06f4d1bac8a
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27570
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoWire up BuiltInWorkgroupId to compute pipeline
Chris Forbes [Tue, 19 Mar 2019 16:06:19 +0000 (09:06 -0700)]
Wire up BuiltInWorkgroupId to compute pipeline

Previously this was left uninitialized, with exciting results
when a shader used it for buffer indexing etc.

Bug: b/126871859
Test: dEQP-VK.*push_constant*
Test: dEQP-VK.glsl.*
Test: dEQP-VK.spirv_assembly.*
Change-Id: I57fb9e22cbe57a87072b1039a7d799bedd28ae91
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27628
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

5 years agoCarry decorations down type tree in WalkExplicitLayoutAccessChain
Chris Forbes [Tue, 19 Mar 2019 16:06:19 +0000 (09:06 -0700)]
Carry decorations down type tree in WalkExplicitLayoutAccessChain

Bug: b/128690261
Bug: b/128872954
Test: dEQP-VK.*push_constant*
Test: dEQP-VK.glsl.*
Test: dEQP-VK.spirv_assembly.*
Change-Id: I0f8d103288777cd03347b32366ed5c5606e38b8d
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27588
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 push constants
Chris Forbes [Tue, 19 Mar 2019 01:51:55 +0000 (18:51 -0700)]
Add support for push constants

- Proper support for calculating offsets in explicit-layout storage
classes (push constant, uniform, and storage buffer) according to the
Offset, ArrayStride and MatrixStride decorations.
- Plumb a block of push constant data throughout the pipeline
- Implement push constant update commands

Bug: b/128690261
Bug: b/128872954
Test: dEQP-VK.*push_constant*
Test: dEQP-VK.glsl.*
Test: dEQP-VK.spirv_assembly.*
Change-Id: I7d5a66ac4aafd6b637b4693eb6ce96a327b4904e
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27528
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 agoFix VulkanUnitTests on Visual Studio
Nicolas Capens [Tue, 19 Mar 2019 17:55:25 +0000 (13:55 -0400)]
Fix VulkanUnitTests on Visual Studio

Also copy the DLLs to build/
This makes it consistent with the CMake build.

Bug b/116336664
Bug b/29024574

Change-Id: I747a52383492c3ec5493f1a232cbbf5c98aec219
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27608
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
5 years agoAdd support for OpUndef
Chris Forbes [Tue, 19 Mar 2019 02:31:16 +0000 (19:31 -0700)]
Add support for OpUndef

Treat OpUndef identically to OpConstantNull for now.

Change-Id: I721f2bf5e053d6a8d6f563272b1d44b6636a157c
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27529
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
5 years agoRegres: Categorize crashes caused by debug macros
Ben Clayton [Mon, 18 Mar 2019 15:13:48 +0000 (15:13 +0000)]
Regres: Categorize crashes caused by debug macros

List most common failures on the daily report.

Change-Id: Ia07f73601727f71e5f2abee7c40886e2a05209bb
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27472
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
5 years agoRegres: Fix priority boost for +2 code review.
Ben Clayton [Thu, 14 Mar 2019 10:08:17 +0000 (10:08 +0000)]
Regres: Fix priority boost for +2 code review.

Confusingly the "Code-Review" label uses 'Value' for -1 / +1, and 'Approved' for +2s.

Changes that were ready to land were not being prioritized over no-code review.

Change-Id: Ia31adcbbba70b2f52b9abc7299f4bafdcdb8fe48
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27170
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoRegres: Don't attempt to build failing changes forever.
Ben Clayton [Thu, 14 Mar 2019 09:51:36 +0000 (09:51 +0000)]
Regres: Don't attempt to build failing changes forever.

If a test failed to build, an error was logged to stdout, but the error was not posted to the change. This meant the change would be picked up by regres again, and the process would repeat ad-infinitum.

Posting of the build error used to work, but was broken by bfaf4e825b.

Change-Id: I1e59f0d2e5ee26eb002aa2c596dc5491e48a9c87
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27169
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
5 years agoFix mipmap generation on undefined cube texture
Nicolas Capens [Mon, 18 Mar 2019 16:42:22 +0000 (12:42 -0400)]
Fix mipmap generation on undefined cube texture

Cube textures must be cube complete to generate mipmaps, but when the
base level is undefined the glGenerateMipmap command must be silently
ignored. This was previously leading to a null dereference.

Bug chromium:924022
Bug https://gitlab.khronos.org/opengl/API/issues/72

Change-Id: I5d6e8533118e554efa12045fc376126c7b00f263
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27491
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
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>