Commit Graph

2494 Commits

Author SHA1 Message Date
Corentin Wallez d87e676845 Add the webgpu.h swapchain creation path
This commit changes wgpu::Device::CreateSwapChain to take an additional
wgpu::Surface argument. Passing nullptr is enough to stay on the
previous swapchain implementation, until the new one is ready.

In order to support both the "old" implementation-based swapchains and
the "new" surface-based swapchains. SwapChainBase is now split into
three abstract classes:

 - SwapChainBase that has a virtual method for each of the
wgpu::SwapChain methods.
 - OldSwapChainBase that corresponds to the implementation-based
swapchains.
 - NewSwapChainBase that will contain the surface-based swapchain
implementation and will eventually just be renamed to SwapChainBase.

The interaction of the surface-based swapchains with the Surface objects
aren't implemented yet, neither are the swapchain methods. Only creation
works.

Validation tests for surface-based swapchain creation are added in the
end2end test target because they need to create OS windows.

Bug: dawn:269

Change-Id: I7e07d6c666479867b9a16d7b1b8c181d5dbd69a0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15281
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-01-23 17:20:38 +00:00
Corentin Wallez a5a6e4f5bb Roll third_party/glfw/ 2de2589f9..d973acc12 (366 commits)
2de2589f91..d973acc123

$ git log 2de2589f9..d973acc12 --date=short --no-merges --format='%ad %ae %s'
2020-01-19 elmindreda Update OpenGL bits of build documentation slightly
2020-01-16 elmindreda Remove AppVeyor skip commits setting
2020-01-16 elmindreda Update changelog and add credit
2018-08-21 kovid X11: Fix queries crashing if monitor disconnected
2020-01-16 elmindreda Add credit
2020-01-14 justcrunkle Fix docs install condition
2020-01-15 elmindreda Win32: Add matching comment
2020-01-15 elmindreda Win32: Fix scancode when key message only had VK
2020-01-15 elmindreda Check scancode before use in glfwGetKeyName
2020-01-15 elmindreda Win32: Use non-async key state for modifier hack
2020-01-15 elmindreda Win32: Fix no Super key release event after Win+V
2020-01-16 elmindreda Cocoa: Add fully dynamic loading of Vulkan loader
2020-01-16 elmindreda Cocoa: Select Vulkan surface extension at runtime
2020-01-06 44054076+ByunghoonKim Cocoa: Add support for VK_EXT_metal_surface
2020-01-12 elmindreda X11: Fix parent window handle initialization
2020-01-05 elmindreda X11: Fix BadMatch focusing a window on non-EWMH WM
2020-01-01 elmindreda X11: Fix no window position events during resize
2020-01-01 elmindreda Update changelog
2020-01-01 elmindreda Update changelog and add credit
2019-12-26 elmindreda Fix Threads package not located by our config file
2019-12-25 elmindreda Set macOS deployment target in Travis CI build
2019-12-22 elmindreda X11: Fix IC event mask not being added to our window
2019-12-22 elmindreda X11: Cleanup
2019-10-06 luflosi Use the correct type in a for loop
2019-12-25 elmindreda Cocoa: Replace display link with IOKit query
2019-11-10 elmindreda NSGL: Simulate vsync for occluded windows
2019-11-07 elmindreda NSGL: Remove problematic swap interval workaround
2019-12-19 elmindreda Cocoa: Only create per-monitor display link once
2019-12-20 elmindreda Cocoa: Fix undeclared selector warnings
2019-12-17 elmindreda X11: Cleanup
2019-12-16 elmindreda X11: Cleanup
2019-12-16 elmindreda X11: Fix updating GLFW_FLOATING on a hidden window
2019-12-17 elmindreda X11: Fix invalid read when clearing GLFW_FLOATING
2019-12-16 elmindreda X11: Fix missing checks for EWMH attention atoms
2019-12-16 elmindreda X11: Fix maximization of hidden windows
2019-12-15 elmindreda Enable strict C99 for non-VS compilers
2019-12-15 elmindreda Win32: Add missing include for wcscmp
2019-12-15 elmindreda Win32: Enable Unicode mode for all compilers
2019-12-15 elmindreda Cocoa: Remove stale GCC workaround
2019-12-15 elmindreda Gather CMake setup of configuration header
2019-12-15 elmindreda Replace CMake threads variable with modern target
2019-12-15 elmindreda Replace ad-hoc CMake code with DEFINE_SYMBOL
2019-12-15 elmindreda Fix use of CMake 3.13 command target_link_options
2019-12-15 elmindreda Replace CMake list variables with target_sources
2019-12-15 elmindreda Fix POSIX conformance issues for clock_gettime
2019-12-11 elmindreda Formatting
2019-12-10 elmindreda Cocoa: Fix duplicate conversion of title string
2019-12-11 elmindreda Win32: Add VERSIONINFO resource to GLFW DLL
2019-12-10 elmindreda Fix typo
2019-08-28 luflosi Fix typo
(...)
2018-11-18 aloucks Win32: Disable non-client painting if undecorated
2018-12-14 vallentinsource Fix typos
2018-12-17 elmindreda Fix glfwSetGamma generating ramps of invalid sizes
2018-12-19 elmindreda Fix glfwGetGammaRamp error handling
2018-12-26 elmindreda Cleanup
2018-12-26 elmindreda Add credit
2018-11-24 amonakov Wayland: Remove gamma-related TODOs
2018-12-17 elmindreda Fix assertions for glfwSetGamma value
2018-12-18 elmindreda Win32: Fix build on older versions of Visual C++
2018-12-13 elmindreda Cleanup
2018-09-13 boilard Documentation work
2018-12-13 elmindreda Win32: Fix joystick element info memory leak
2018-12-25 elmindreda Remove deprecated event from events test
2018-12-25 elmindreda Documentation work
2018-12-25 elmindreda Cleanup
2018-11-04 onesadcookie Cocoa: Fix half of all key events for Caps Lock
2018-12-25 elmindreda Add credit
2018-11-24 andrewpbelt Cocoa: Accept focusing mouse click as input
2018-12-24 elmindreda Cocoa: Move to modern Objective-C literals
2018-12-24 elmindreda Cocoa: Add NSApplicationDelegate protocol
2018-12-24 elmindreda Cocoa: Remove subclassing of NSApplication
2018-10-30 eb Use GNUInstallDirs for install destinations
2018-10-30 eb Simplify check for CMake policy CMP0054
2018-11-27 elmindreda Remove trailing whitespace
2018-11-27 elmindreda Cocoa: Remove superfluous compatibility macro
2018-11-19 elmindreda Cocoa: Use NSURLs for drag and drop
2018-11-11 elmindreda Fix Markdown table heads
2018-11-05 elmindreda Add tutorial to Doxygen menu
2018-11-05 elmindreda Documentation work
2018-11-05 elmindreda Use Doxygen layout file
2018-11-05 elmindreda Fix newlines in Doxygen aliases
2018-11-05 elmindreda Revert accidental Nuklear edit
2018-11-04 elmindreda Fix CSS for Doxygen Markdown tables
2018-11-04 elmindreda Use HTTPS when possible
2018-11-03 linkmauve x11: Add a mention of #1366 in the ChangeLog.
2018-10-26 asmadeus x11 window: update cursor position on enter event
2018-11-03 vallentinsource Updated URLs
2018-11-02 vallentinsource Use HTTPS when possible
2018-11-02 vallentinsource Fixed repeated words
2018-10-13 cycl0ps X11: Fix missing check for NET_WM_STATE
2018-10-26 elmindreda Cocoa: Fix OpenGL rendering not being displayed
2018-10-26 elmindreda Cocoa: Fix some macOS 10.14 deprecation warnings
2018-10-22 4436784+tnixeu Fix guide example callback name mismatch
2018-10-24 elmindreda Cocoa: Cleanup
2018-10-22 elmindreda Allow exposing only native context APIs
2018-10-10 linkmauve Documentation work
2018-10-10 linkmauve Wayland: Implement clipboard copy
2018-10-10 linkmauve Wayland: Implement clipboard paste
2018-10-10 linkmauve Wayland: Add boilerplate for clipboard handling
2014-09-23 ricardo.vieira wayland: save serial from all input sources

Created with:
  roll-dep third_party/glfw

Bug: dawn:269

Change-Id: Ie94907bb948740449c441279cd94cdf808916ceb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15380
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-01-23 15:10:58 +00:00
Corentin Wallez c2e16963a9 Add SurfaceDescriptorFromHTMLCanvasID
Bug:dawn:269

Change-Id: I91802b44d0280224b93eb4fb637e91597bc03c81
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15322
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
2020-01-22 21:37:26 +00:00
Corentin Wallez 8ffd3f2333 Move EXPECT_LAZY_CLEAR to TextureZeroInitTests.cpp
This macro is used only for testing texture zero initialization so it
didn't need to be in DawnTest.h

Bug:
Change-Id: Ifb7ed06d93ae1bc275c9fd4650858c9b27117b5e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15360
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-01-22 15:55:46 +00:00
Corentin Wallez 6b66b67f69 Fix compilation of Log2(uint64_t) on MSVC
The _BitScanReverse64 intrinsic only exists when compiling for 64bit.
Replace it by two calls to _BitScanReverse (the 32bit one) when on
32bit.

Bug:
Change-Id: Ie294327ec914b0ca4a73732e4b78c1f2a08f100f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15321
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-01-22 13:05:16 +00:00
Natasha Lee 80880ee998 Device Loss handle GetBindGroupLayout and test
This includes moving the destruction of vkDevice from Destroy to the
Device Destructor since we need vkDevice to destroy child objects.

Bug: dawn:68
Change-Id: Id477206b2e3f80138b3708eedcee073303f1b696
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15220
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Natasha Lee <natlee@microsoft.com>
2020-01-21 18:48:45 +00:00
Corentin Wallez 3003aa622b Fix compilation on MSVC
- Fix a warning on 32bit for converting uint64_t to size_t for the
 buffer mapped range.
 - Fix a macro redifinition caused by including glfw3.h before windows.h

 Bug:

Change-Id: I3897af55679d943b1dfc34b93bba7bd25d8fb7d6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15320
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-01-21 15:25:25 +00:00
Corentin Wallez f2ed2482a4 Reorder wgpu::BackendType to match webgpu.h
BUG=dawn:269

Change-Id: I26e2dded1ceb99a34c29924d6f991e30dc6477b6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15280
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-01-21 08:44:25 +00:00
Ryan Harrison 0fee6ccc2e Rolling 2 dependencies
Roll third_party/glslang/ 3ed344dd7..b0ada8035 (1 commit)

3ed344dd78..b0ada80356

$ git log 3ed344dd7..b0ada8035 --date=short --no-merges --format='%ad %ae %s'
2020-01-17 cepheus HLSL: Fix #1974: ignore input primitives on non-entry-point functions.

Roll third_party/shaderc/ f53792645..c6a2ef12d (1 commit)

f53792645f..c6a2ef12df

$ git log f53792645..c6a2ef12d --date=short --no-merges --format='%ad %ae %s'
2020-01-17 rharrison Change call in shaderc_spvc_needs_buffer_size_buffer to be correct (#964)

Created with:
  roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers

Change-Id: I64dd2b710241452f568952e93545b24936202c11
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15300
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-01-20 19:50:14 +00:00
Natasha Lee d8f8c29bb2 Add QueueBase::MakeError
Bug: dawn:68, chromium:1042598
Change-Id: I1cf97e29ecadb520e2641ea01ac6dcf7e908bbd3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15221
Commit-Queue: Natasha Lee <natlee@microsoft.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-01-17 21:32:08 +00:00
Ryan Harrison 352a589fe0 Add code path to use spvc in Metal backend
BUG=dawn:291

Change-Id: Idf20496bac733b14db3b7df7eb86ff0a23a9d826
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15161
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-01-17 20:28:58 +00:00
Ryan Harrison f70786126c Rolling 4 dependencies for Vk1.2 support integration
Roll third_party/SPIRV-Tools/ f8d7df760..323a81fc5 (2 commits)

f8d7df760c..323a81fc5e

$ git log f8d7df760..323a81fc5 --date=short --no-merges --format='%ad %ae %s'
2019-09-04 alanbaker Validate Vulkan 1.2 capabilities
2019-08-28 dneto Add basic support for Vulkan 1.2: SPV_ENV_VULKAN_1_2

Roll third_party/glslang/ d203754bc..3ed344dd7 (4 commits)

d203754bc1..3ed344dd78

$ git log d203754bc..3ed344dd7 --date=short --no-merges --format='%ad %ae %s'
2020-01-16 cepheus Fix #2059, and also attempt to skip test bots [skip ci]
2019-12-24 laddoc Add Error check flag in io mapper
2020-01-15 cepheus Update to latest SPIRV-Tools, supporting Vulkan 1.2.
2020-01-15 cepheus SPV/Vulkan: Add support for Vulkan 1.2, which defaults to SPIR-V 1.5.

Roll third_party/shaderc/ df0e683b5..f53792645 (2 commits)

df0e683b58..f53792645f

$ git log df0e683b5..f53792645 --date=short --no-merges --format='%ad %ae %s'
2020-01-15 rharrison Use the correct comparison when checking for not MSL (#960)
2020-01-15 dneto Support Vulkan 1.2 (#958)

Roll third_party/spirv-cross/ 172e39f03..f9818f080 (7 commits)

172e39f039..f9818f0804

$ git log 172e39f03..f9818f080 --date=short --no-merges --format='%ad %ae %s'
2020-01-16 post Update license headers to 2020.
2020-01-16 post Run format_all.sh.
2020-01-16 post MSL: Add support for force-activating IAB resources.
2020-01-16 post Deal with illegal names in types as well.
2020-01-15 post Reflection: Add array stride/matrix stride reflection.
2020-01-15 post Reflection: Emit reflection information for array size literalness.
2020-01-15 post GLSL: Implement geometry shader passthrough extension.

Created with:
  roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers

Change-Id: Icf361e327598702ecfc0a4cdd3014d0060f2c083
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15200
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-01-16 17:21:01 +00:00
Austin Eng 631f4258a1 Suppress Depth32TextureCreationDepthClears on D3D12 NVIDIA
This test often crashes on first run, but succeeds on retry.

Bug: dawn:145
Change-Id: I44303a01eaceded10ba277a837c5b5e7649df033
Tbr: cwallez@chromium.org
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15180
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-01-16 02:36:10 +00:00
Austin Eng 9652add688 OpenGL: Simplify lazy clear of render pass attachments
Bug: dawn:145
Change-Id: Ia175ebc5a74f7cc15584b9132e00f9089d5dc5b6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14983
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-01-16 01:30:30 +00:00
Austin Eng 3d97384e16 D3D12: Simplify lazy clear of render pass attachments
Bug: dawn:145
Change-Id: If4c83cdf4065acc9f68aa5d9a7e581e9f2e801a9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14982
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-01-16 01:29:40 +00:00
Austin Eng 5a2dd74450 Vulkan: Simplify lazy clear of render pass attachments
Bug: dawn:145
Change-Id: I3d74e9ce865d7273a4b737ac11c98380785a415c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14981
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-01-16 01:21:10 +00:00
Austin Eng 636e6cee4f Directly load Swiftshader if no Vulkan driver is available
This may be a short term solution before linking our own version
of the Vulkan Loader.

Bug: dawn:283
Change-Id: Ifeddeaa5170bccc912c61059071a83c2b5fd9524
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15121
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-01-16 00:34:30 +00:00
Austin Eng 0d6619848d Metal: Implement lazy texture clears
Bug: dawn:145
Change-Id: I73d161002cb09498e41838a10e9ac1db996c955d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14781
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-01-16 00:12:10 +00:00
Natasha Lee 0ecc48ecb7 Handle DeviceLost error
Handle DeviceLostCallback once DeviceLost error occurs.
Disallow any other commands or actions on device to happen after device
has been lost.

Bug: dawn:68
Change-Id: Icbbbadf278cae5e6213050d00439118789c863dc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/12801
Commit-Queue: Natasha Lee <natlee@microsoft.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-01-15 19:02:13 +00:00
Austin Eng 0c66bcd13a Reland "Metal: Add CommandRecordingContext"
This is a reland of 2b3975f808

The previous CL failed to retain autoreleased ObjC objects which
should live longer than the autoreleasepool block. This reland fixes
the issue and adds tests for it.

Original change's description:
> Metal: Add CommandRecordingContext
>
> Introduces the idea of a CommandRecordingContext to the Metal backend,
> similar to other backends. This is a class to track which Metal encoder
> is open on the device-global pending MTLCommandBuffer.
> It will be needed to open/close encoders for lazy clearing.
>
> Bug: dawn:145
> Change-Id: Ief6b71a079d73943677d2b61382d1c36b88a4f87
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14780
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>

Bug: dawn:145
Change-Id: I67494b35225ce8f6443a3fa9787d054522e5d422
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15042
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-01-15 18:22:53 +00:00
Ryan Harrison 855a24b150 Switch over to using CheckSpvcSuccess where possible
BUG=dawn:274

Change-Id: Ia7bfc96a2a85bff5b30065e7b985e0d84c8dcd4b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15120
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-01-15 16:58:23 +00:00
Ryan Harrison 5dc07d1b1b Rolling 2 dependencies
Roll third_party/SPIRV-Tools/ 18b3b9456..f8d7df760 (2 commits)

18b3b94567..f8d7df760c

$ git log 18b3b9456..f8d7df760 --date=short --no-merges --format='%ad %ae %s'
2020-01-14 jaebaek Fix OpLine bug of merge-blocks pass (#3130)
2020-01-13 afdx spirv-fuzz: add dead blocks (#3135)

Roll third_party/shaderc/ dc2172c08..df0e683b5 (4 commits)

dc2172c083..df0e683b58

$ git log dc2172c08..df0e683b5 --date=short --no-merges --format='%ad %ae %s'
2020-01-15 rharrison Fix incorrect casing on flags in docs (#957)
2020-01-14 rharrison Convert get_shader_resources to return ptr instead of ref (#955)
2020-01-14 rharrison Convert spvc messages internal struct to be a vector (#952)
2020-01-13 rharrison Rolling 5 dependencies (#953)

Created with:
  roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers

Change-Id: Ib97af2147dd6c17f9e71ff1c3cf8200e4b353fdc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15160
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-01-15 16:18:32 +00:00
Corentin Wallez 1bf3167ce6 Add a proper license to webgpu.h's template.
This avoids linter checks to trigger when importing updates of Dawn into
Google3.

Bug:
Change-Id: Ib038d8937cc6c294823b56d52b6f2c5e5e24ffac
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15140
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-01-15 15:39:12 +00:00
Ryan Harrison 9af58bbe14 Return errors in ExtractSpirvInfo instead of sending to the device
BUG=dawn:274

Change-Id: Ieeaffdd356a6f2174a39a8098b306c36d10ef9e7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15100
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-01-15 14:56:22 +00:00
Corentin Wallez 3a1746e71c Introduce wgpu::Surface and implement it for HWND, X11 and Metal
This is another step to implement webgpu.h swapchains, Surface is
essentially a union type of all the types of windows that can be used to
create swapchains.

Changes to allow implementing wgpu::Surface and test its creation are:

 - Add GLFWUtils.cpp/.h/_metal.mm  that contains helpers used to use
WebGPU with GLFW. This deprecates BackendBinding.h that will be removed
when the NXT swapchain is removed.
 - Add a `dawn_use_x11` GN variable to factor all the places in BUILD.gn
where we checked whether we should use X11.
 - Add a `supports_glfw_for_windowing` GN variable in the main BUILD.gn
file to control which configuration tests and samples using GLFW can be
built.
 - Add a ObjCUtils.h to contain some ObjC functionality that we'd need
in files that otherwise would be C++ (so that they can be compiled on
all platforms).

Bug: dawn:269

Change-Id: I25548142a1d1d1f05b0f4d71aa3bdc4698d19622
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15081
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-01-15 13:14:12 +00:00
Corentin Wallez 2b24c3d92d webgpu.h introduce a base struct for extension structures.
struct WGPUChainedStruct {
     WGPUChainedStruct const * nextInChain;
     WGPUSType sType;
 };

And changes all the nextInChain to point to such structures. This adds
more type safety to extension structs and requires less casting to check
sTypes and friends.

Bug: dawn:269

Change-Id: I443f363cdb55dbec7c7f6e897245d4a7ea0ebe70
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15080
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-01-15 09:54:42 +00:00
Jiawei Shao 7f078e7ebe Add checks to TextureUsage::Storage
This patch adds validations to the texture usage "Storage" when
creating a texture.
1. "Storage" usage cannot be used when SampleCount > 1
2. "Storage" usage can only be used with some texture formats. The
list of the formats can be found through the following link:
https://github.com/gpuweb/gpuweb/issues/513

BUG=dawn:267
TEST=dawn_unittests

Change-Id: Ifc7296d966ac0c600433948a63c3dd6a436c8d8b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15040
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-01-15 00:09:42 +00:00
Ryan Harrison cd170a5c72 Implement using spvc in ExtractSpirvInfo
BUG=dawn:291

Change-Id: I6c12c1874afb9b2c60e326f5c80230fba5fa748c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15000
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-01-14 16:29:41 +00:00
Ryan Harrison e5cb8f2eff Rolling 3 dependencies
Roll third_party/SPIRV-Tools/ fb2e81981..18b3b9456 (1 commit)

fb2e819819..18b3b94567

$ git log fb2e81981..18b3b9456 --date=short --no-merges --format='%ad %ae %s'
2020-01-10 33791085+aqnuep Remove names and decorations of imported symbols (#3081)

Roll third_party/glslang/ 518136706..d203754bc (1 commit)

5181367062..d203754bc1

$ git log 518136706..d203754bc --date=short --no-merges --format='%ad %ae %s'
2020-01-03 lryer Fix glslang can't link multiple AST in a single stage

Roll third_party/shaderc/ 0b9a2992c..dc2172c08 (3 commits)

0b9a2992c7..dc2172c083

$ git log 0b9a2992c..dc2172c08 --date=short --no-merges --format='%ad %ae %s'
2020-01-10 rharrison Implement Reflection API needed by Dawn (#950)
2020-01-10 rharrison Add reference to Go bindings in README.md (#949)
2020-01-10 dneto Fix spelling of -finvert-y in doc (#947)

Created with:
  roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers

Change-Id: Idca26abcb9612ddda847250333418a408477e7b3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15041
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-01-13 17:16:51 +00:00
Corentin Wallez 15c442e941 Revert "Metal: Add CommandRecordingContext"
This reverts commit 2b3975f808.

Reason for revert: causes the failure in crbug.com/1041358

Original change's description:
> Metal: Add CommandRecordingContext
>
> Introduces the idea of a CommandRecordingContext to the Metal backend,
> similar to other backends. This is a class to track which Metal encoder
> is open on the device-global pending MTLCommandBuffer.
> It will be needed to open/close encoders for lazy clearing.
>
> Bug: dawn:145
> Change-Id: Ief6b71a079d73943677d2b61382d1c36b88a4f87
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14780
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>

TBR=cwallez@chromium.org,kainino@chromium.org,enga@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: dawn:145
Bug: chromium:1041358
Change-Id: I05c76cd96f723230d05cff65127dc8513d5e03c5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15060
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-01-13 13:47:01 +00:00
Jiawei Shao df2ae16e59 Enable ComputeCopyStorageBufferTests.SizedArrayOfStruct on D3D12
Now ComputeCopyStorageBufferTests.SizedArrayOfStruct can pass on all
backends with the fix in the latest SPIRV-Cross.

BUG=chromium:1037829
TEST=dawn_end2end_tests

Change-Id: I20103c3b0848da394e82912f59548a71a3273ac1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15020
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-01-13 08:48:53 +00:00
Rafael Cintron 69c68d01b2 Improve Memory Management of Result class
The way in which the Result class is used in Dawn can be fragile
with respect to memory management because the caller of AcquireError
must know they need to delete the returned pointer or a memory leak
will occur. We've had a couple of instances where developers have
accidentally left out the delete call and managed to get past code
review.

This CL changes the Result class so that it assumes the error is
allocated on the heap and forces the caller to use unique_ptr when
calling AcquireError.

Bug:dawn:320
Change-Id: I13ec953b0c37eaafbd6ce93c2f719b4743676acb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14960
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
2020-01-10 17:58:28 +00:00
Li, Hao 4950095ac9 Remove suppression for BindGroupTests.MultipleBindLayouts on Metal
The padded matrix issue in MSL has been fixed in SPIRV-Cross, and
it's updated in https://dawn-review.googlesource.com/c/dawn/+/13421,
so we can add BindGroupTests.MultipleBindLayouts back.

Bug: dawn:33
Change-Id: I8847ab536ebfd779219a1c6d0e1a9a128adf7e85
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13560
Commit-Queue: Hao Li <hao.x.li@intel.com>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-01-10 14:55:18 +00:00
Corentin Wallez f12c9dba6d Add WGPUAdapterProperties and expose it in DawnNative
The dawn_native::Adapter::GetPCIInfo/GetBackendType/GetDeviceType
methods are now deprecated in favor of a method returning a webgpu.h
AdapterProperties structure. Deprecated function are still available to
avoid breaking Chromium or Skia compilation.

This reduces the difference between dawn.json and webgpu.h

BUG=dawn:160

Change-Id: Ib68fe1c4d1d87676c01c212c91f80fdd26056c56
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14541
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-01-10 13:28:18 +00:00
Corentin Wallez 5fc2c82c11 Add Instance and CreateInstance to webgpu.h
This is the first step in making the API before WGPUDevice creation
match webgpu.h and is necessary to implement WGPUSwapChain.

BUG=dawn:269

Change-Id: If92ced42d7683d79e67c02738949ff8b483d22c4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14061
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-01-10 13:06:48 +00:00
Jiawei Shao e6441b604f dawn_wire: Make GetProcs() a static member function of WireClient
This patch makes GetProcs() a static member function of WireClient so
that we can call it without creating a WireClient object.

BUG=chromium:996713

Change-Id: I499be0cd2c5a5f29c796d3be88ce33c1b70711d6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14942
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-01-10 00:02:38 +00:00
Ryan Harrison 1dbb528629 Rolling 4 dependencies
Roll third_party/SPIRV-Tools/ 96354f504..fb2e81981 (17 commits)

96354f5047..fb2e819819

$ git log 96354f504..fb2e81981 --date=short --no-merges --format='%ad %ae %s'
2020-01-08 dneto Fix GN build for OpenCL.DebugInfo.100 update (#3134)
2020-01-08 bclayton Fix bad parameter names in error message (#3129)
2020-01-07 alanbaker Revert PR #3093 (#3131)
2020-01-07 alanbaker Disallow forward references in arrays (#3093)
2020-01-07 afdx spirv-fuzz: Add fuzzer pass to perform module donation (#3117)
2020-01-06 dneto GetOperandConstants operand can be const (#3126)
2019-12-27 dneto Avoid pessimizing std::move (#3124)
2019-12-27 kburjack Fix typo in validation message (#3122)
2019-12-27 greg Change default version for CreatInstBindlessCheckPass to 2 (#3119)
2019-12-20 greg Fix convert-relax-to-half invalid code (#3099) (#3106)
2019-12-19 dneto Support OpenCL.DebugInfo.100 extended instruction set (#3080)
2019-12-19 afdx spirv-fuzz: Always add new globals to entry point interfaces (#3113)
2019-12-19 afdx spirv-fuzz: Transformation to add a new function to a module (#3114)
2019-12-19 afdx spirv-fuzz: Avoid passing access chains as parameters (#3112)
2019-12-18 dneto Add support for SPV_KHR_non_semantic_info (#3110)
2019-12-16 afdx spirv-fuzz: Transformations to add types, constants and variables (#3101)
2019-12-16 greg Make Instrumentation format version 2 the default (Step 1) (#3096)

Roll third_party/glslang/ ebf634bca..518136706 (13 commits)

ebf634bcaa..5181367062

$ git log ebf634bca..518136706 --date=short --no-merges --format='%ad %ae %s'
2020-01-07 cepheus Fix #1829: Add "--" command-line options for macro def/undef.
2020-01-08 laddoc Move symbol builtin check to grammar stage
2020-01-06 lryer Add missing extension defination
2020-01-06 cepheus Bump revision
2020-01-06 laddoc Add builtin constants
2019-11-26 laddoc Add support for ARB_gpu_shader_fp64
2019-12-26 cepheus HLSL: Fix #2037: Integer dot used incorrect input for adds.
2019-12-25 laddoc atomic counter offset should align to 4
2019-12-25 laddoc Modify atomic_uint binding check
2019-11-26 laddoc Add support for ARB_uniform_buffer_object
2019-11-26 laddoc Add support for ARB_texture_multisample
2019-11-26 laddoc Add support for ARB_sample_shading
2019-12-20 cepheus Command-line: Give better error messages. From #1829.

Roll third_party/shaderc/ 6d3e0ee67..0b9a2992c (3 commits)

6d3e0ee67f..0b9a2992c7

$ git log 6d3e0ee67..0b9a2992c --date=short --no-merges --format='%ad %ae %s'
2020-01-07 rharrison Rolling 5 dependencies and updating expectations (#946)
2019-12-18 rharrison Adding in missing APIs for MSL support in Dawn (#943)
2019-12-16 rharrison Rolling 4 dependencies (#942)

Roll third_party/spirv-cross/ f912c3289..172e39f03 (20 commits)

f912c32898..172e39f039

$ git log f912c3289..172e39f03 --date=short --no-merges --format='%ad %ae %s'
2020-01-09 post HLSL: Add a resource remapping API similar to MSL.
2020-01-09 post MSL: Deal with sign on wave min/max.
2020-01-09 post HLSL: Deal with casting for WaveActiveMin/Max.
2020-01-09 post GLSL: Deal with sign in subgroup Min/Max operations.
2020-01-08 post Run format_all.sh.
2020-01-08 post HLSL: Fix bug when reading and writing structs from SSBO.
2020-01-08 post HLSL: Implement stores for complex composites in ByteAddressBuffers.
2020-01-08 post HLSL: Support loading complex composites from ByteAddressBuffer.
2020-01-08 post Run format_all.sh.
2020-01-07 post MSL: Deal with padded fragment output + Component decoration.
2020-01-07 post MSL: Explicitly don't support component packing for tessellation.
2020-01-07 post MSL: Don't set OrigID when emitting component packed vectors.
2020-01-07 post MSL: Deal with packing vectors for vertex input/fragment output.
2020-01-07 post MSL: Add trivial tests for Component decoration.
2020-01-06 post Fix Clang warnings.
2020-01-06 post Roll custom versions of isalpha/isalnum.
2020-01-06 post Add test shader for OpCopyLogical with packing/unpacking.
2020-01-06 post Go through access chain path for OpCopyLogical.
2020-01-06 post Basic implementation of OpCopyLogical.
2019-12-21 dm86.jang Add debug prefix on Windows

Created with:
  roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers

BUG=1037829

Change-Id: I0dc87160c607e615be6e6f2f6dd4a892b010de51
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14943
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-01-09 16:09:37 +00:00
Austin Eng c3609d224a Reland "Use Swiftshader by default when fuzzing"
This is a reland of d08a14b709

It gates dawn_use_swiftshader on dawn_enable_vulkan because the
Vulkan backend isn't supported on Mac. We may support Swiftshader
Vulkan on Mac in the future, but that will first require changes
to how we initialize the Vulkan backend.

Original change's description:
> Use Swiftshader by default when fuzzing
>
> Note: This still requires Chromium to have set dawn_swiftshader_dir
> to take effect.
>
> Bug: dawn:295
> Change-Id: I0c953196630dd2694f68d290e6f3f1e427c20a2f
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14821
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>

Bug: dawn:295
Change-Id: Ia125005b35951021702104a99a78712bcd47dd1e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14941
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-01-08 22:59:47 +00:00
Austin Eng 9b2712456f Revert "Use Swiftshader by default when fuzzing"
This reverts commit d08a14b709.

Reason for revert: This breaks the Mac fuzzer builds because it tries
to build with Swiftshader without Vulkan enabled. Reverting this now
to unblock the roll while I work on a fix.

Original change's description:
> Use Swiftshader by default when fuzzing
> 
> Note: This still requires Chromium to have set dawn_swiftshader_dir
> to take effect.
> 
> Bug: dawn:295
> Change-Id: I0c953196630dd2694f68d290e6f3f1e427c20a2f
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14821
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>

TBR=cwallez@chromium.org,kainino@chromium.org,enga@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: dawn:295
Change-Id: I7b73d5edc844e090d5d2c8efe9efacc60040463e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14940
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-01-08 18:16:47 +00:00
Austin Eng 2b3975f808 Metal: Add CommandRecordingContext
Introduces the idea of a CommandRecordingContext to the Metal backend,
similar to other backends. This is a class to track which Metal encoder
is open on the device-global pending MTLCommandBuffer.
It will be needed to open/close encoders for lazy clearing.

Bug: dawn:145
Change-Id: Ief6b71a079d73943677d2b61382d1c36b88a4f87
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14780
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-01-08 17:01:07 +00:00
Brandon Jones d1cba106c8 Temporarily Disable Use of D3D12 Render Pass API
Due to significant performance regressions on Intel Gen11 Graphics,
temporarily disable use of the D3D12 Render Pass API until a workaround
infrastructure can be implemented.

Bug: dawn:310
Change-Id: I994a2c2a0f6a3b61c48b083c73d6e0d3f8910dfa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14663
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
2020-01-07 17:49:15 +00:00
Yunchao He 5ccecaade2 Fix a comment in BindGroupValidationTests.cpp
BUG=

Change-Id: Ice06ef17f40951493215a84ddcfef33521bf2656
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14860
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2020-01-06 22:18:45 +00:00
Austin Eng 3890934033 fuzzing: Create Instance and discover Adapters only once
This patch moves Instance initialization and adapter discovery so that
it is done once globally, and not for every fuzz input. This is to work
around a bug where destructing the instance at the end of a run breaks
when fuzzing with Swiftshader.

Bug: dawn:295, chromium:1038952
Change-Id: Iabfe178f40b9df85d47a6353f16cd2ef26f39966
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14822
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-01-06 20:40:27 +00:00
Austin Eng 470921fe46 Reland "fuzzing: Add supportsErrorInjection option to DawnWireServerFuzzer"
This is a reland of f58f69f66b

The whitebox dawn_end2end_tests are updated to link statically against
libdawn_native. This is required because the test link against and use
libdawn_native as sources. It is an error with MSVC to both import and
export symbols from libdawn_native.

Original change's description:
> fuzzing: Add supportsErrorInjection option to DawnWireServerFuzzer
>
> This option will be used by backends that support error injection so
> that errors can be injected into a "clean" corpus to generate a seed
> corpus with good examples of injected error conditions.
>
> Bug: dawn:295
> Change-Id: I837acdde6dd4274adb56edf8e4307427f8d6333b
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14681
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>

Bug: dawn:295
Change-Id: Ifa092d28aa7ac57cfb197aa4daeb8408f8036d4a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14820
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-01-06 19:56:17 +00:00
Austin Eng d08a14b709 Use Swiftshader by default when fuzzing
Note: This still requires Chromium to have set dawn_swiftshader_dir
to take effect.

Bug: dawn:295
Change-Id: I0c953196630dd2694f68d290e6f3f1e427c20a2f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14821
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-01-06 19:42:47 +00:00
Corentin Wallez 96f79f6db5 Validate SetVertexBuffers' slot is less than kMaxVertexBuffers
Bug: chromium:1034808
Change-Id: Ibad70a7cd7b4e30b5b885e9373cc40db16768c72
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14840
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-01-06 19:36:07 +00:00
Austin Eng 87d3138158 Revert "fuzzing: Add supportsErrorInjection option to DawnWireServerFuzzer"
This reverts commit f58f69f66b.

Reason for revert: This breaks the MSVC build because the whitebox end2end tests try to both import and export the error injector symbols from libdawn_native

Original change's description:
> fuzzing: Add supportsErrorInjection option to DawnWireServerFuzzer
> 
> This option will be used by backends that support error injection so
> that errors can be injected into a "clean" corpus to generate a seed
> corpus with good examples of injected error conditions.
> 
> Bug: dawn:295
> Change-Id: I837acdde6dd4274adb56edf8e4307427f8d6333b
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14681
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>

TBR=cwallez@chromium.org,kainino@chromium.org,enga@chromium.org

Change-Id: I14a15fcd094d431cbb8a29d5642a4a7fe6a11f4c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: dawn:295
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14741
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2019-12-20 23:07:40 +00:00
Austin Eng 2cb76ab598 perf_tests: Manually serialize JSON and remove dependency on jsoncpp
jsoncpp causes some flaky failures because of inconsistencies in nested
DEPS. We barely use it for JSON serialization so the simplest solution
is to just manually write the serialization for perf test tracing data.

Bug: dawn:208
Change-Id: Ie5e4b5436e2c9e32e6817d64c6e95c774cb8751f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14720
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2019-12-20 19:39:10 +00:00
Austin Eng e9b15ab829 perf_tests: Fixup perf test result printing format
Results should be printed METRIC: STORY, not the other way around.
Also, story names shouldn't have slashes as it will parse as separate
chart segments and won't be allowed when we switch to using histograms.

Bug: dawn:208, dawn:311
Change-Id: Ifc893e5aa94eddcb3a08c0d4aff66b7a0f41620b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14740
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2019-12-20 19:10:50 +00:00
Bryan Bernhart cd1152fb9b Support for small resource placement for MSAA textures.
Enables use of 64KB texture alignments where permitted.
This saves heap memory (64KB vs 4MB per allocation) and
improves re-use.

BUG=dawn:27

Change-Id: Ief4c531446788284e69ec1646cfe2ea7a25c7bb2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14683
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
2019-12-20 17:42:30 +00:00