dawn-cmake/src/dawn_native
Yunchao He d2631f86e7 Implement Culling and FrontFace
This patch implements Culling and FrontFace on backends, and add tests too.

This test also verified that we couldn't invert FrontFace on Metal backend.
Otherwise, the tests would fail on all HWs.

But we do need to invert CCW/CW on OpenGL backend. Because Y axis is up in
OpenGL while Y axis is down in WebGPU.

Bug=dawn:43

Change-Id: I7dd0922477397a13c5f7208e104ff352a673a556
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/8420
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2019-07-06 00:11:10 +00:00
..
d3d12 Implement Culling and FrontFace 2019-07-06 00:11:10 +00:00
metal Implement Culling and FrontFace 2019-07-06 00:11:10 +00:00
null Add missing Reference count in null Device. 2019-06-26 19:53:34 +00:00
opengl Implement Culling and FrontFace 2019-07-06 00:11:10 +00:00
vulkan Implement Culling and FrontFace 2019-07-06 00:11:10 +00:00
Adapter.cpp Emulate store and multisample resolve on Metal 2019-04-26 07:52:57 +00:00
Adapter.h Emulate store and multisample resolve on Metal 2019-04-26 07:52:57 +00:00
BackendConnection.cpp OpenGL: Implement the backend connection and adapter. 2019-01-07 09:48:03 +00:00
BackendConnection.h OpenGL: Implement the backend connection and adapter. 2019-01-07 09:48:03 +00:00
BindGroup.cpp Dynamic Buffer Offset : Validation 2019-05-17 02:05:37 +00:00
BindGroup.h Change buffer-related sizes/offsets to be uint64_t 2019-04-05 20:51:29 +00:00
BindGroupLayout.cpp Dynamic Buffer Offset : Validation 2019-05-17 02:05:37 +00:00
BindGroupLayout.h Dynamic Buffer Offset : Validation 2019-05-17 02:05:37 +00:00
Buffer.cpp Return nullptr from MakeErrorMapped if OOM allocating staging data 2019-06-07 03:53:07 +00:00
Buffer.h dawn.json: Use void* instead of uint8_t* for data pointers 2019-06-06 16:19:15 +00:00
CommandAllocator.cpp Improve usage of static_casts over reinterpret_casts 2019-05-03 00:58:27 +00:00
CommandAllocator.h CommandAllocator: Default initalize allocated data. 2019-05-14 03:53:26 +00:00
CommandBuffer.cpp Support BC5 formats on Vulkan 2019-07-02 23:55:55 +00:00
CommandBuffer.h Clear Vulkan Textures at first usage 2019-06-11 18:11:05 +00:00
CommandBufferStateTracker.cpp Fix null pointer dereference in CommandBufferStateTracker 2019-03-28 15:28:01 +00:00
CommandBufferStateTracker.h Update VertexInput (InputState) to match spec - Part 1 2019-05-22 22:46:32 +00:00
CommandEncoder.cpp Implement RenderPassEncoder::SetViewport - front end 2019-07-04 15:30:59 +00:00
CommandEncoder.h Change buffer-related sizes/offsets to be uint64_t 2019-04-05 20:51:29 +00:00
Commands.cpp Implement RenderPassEncoder::SetViewport - front end 2019-07-04 15:30:59 +00:00
Commands.h Implement RenderPassEncoder::SetViewport - front end 2019-07-04 15:30:59 +00:00
ComputePassEncoder.cpp Reland "dawn_native: Indirect draw/dispatch" 2019-06-10 20:56:27 +00:00
ComputePassEncoder.h Reland "dawn_native: Indirect draw/dispatch" 2019-06-10 20:56:27 +00:00
ComputePipeline.cpp Remove the concept of push constants 2019-05-29 13:16:06 +00:00
ComputePipeline.h dawn_native: deduplicate compute pipelines 2019-05-01 13:48:47 +00:00
DawnNative.cpp Add begin-capture-on-startup testing flag 2019-06-21 02:09:05 +00:00
Device.cpp Remove unnecessary DeviceBase::GetDevice 2019-06-20 09:08:24 +00:00
Device.h Remove unnecessary DeviceBase::GetDevice 2019-06-20 09:08:24 +00:00
DynamicUploader.cpp Add Create/ReleaseStagingBuffer to DynamicUploader 2019-06-05 16:16:37 +00:00
DynamicUploader.h Add Create/ReleaseStagingBuffer to DynamicUploader 2019-06-05 16:16:37 +00:00
Error.cpp Vulkan: Handle errors on device creation. 2018-12-03 12:49:56 +00:00
Error.h WebGPU error handling 1: Return error objects on errors. 2019-02-13 13:09:18 +00:00
ErrorData.cpp Make Dawn error macro more explicit and have an "error type" 2018-09-11 07:55:27 -04:00
ErrorData.h Make Dawn error macro more explicit and have an "error type" 2018-09-11 07:55:27 -04:00
Fence.cpp Replace dawn::CallbackUserdata with void* 2019-05-29 13:03:50 +00:00
Fence.h Replace dawn::CallbackUserdata with void* 2019-05-29 13:03:50 +00:00
FenceSignalTracker.cpp Implement timeline fences in Dawn 2018-12-03 16:57:34 +00:00
FenceSignalTracker.h Implement timeline fences in Dawn 2018-12-03 16:57:34 +00:00
Forward.h Remove the concept of push constants 2019-05-29 13:16:06 +00:00
Instance.cpp Add begin-capture-on-startup testing flag 2019-06-21 02:09:05 +00:00
Instance.h Add begin-capture-on-startup testing flag 2019-06-21 02:09:05 +00:00
ObjectBase.cpp WebGPU error handling 1: Return error objects on errors. 2019-02-13 13:09:18 +00:00
ObjectBase.h WebGPU error handling 1: Return error objects on errors. 2019-02-13 13:09:18 +00:00
PassResourceUsage.h Validate that mapped buffers aren't used in submits. 2018-11-07 10:02:43 +00:00
PerStage.cpp dawn_native: Fixup namespace from backend:: to dawn_native:: 2018-07-25 11:27:55 +02:00
PerStage.h Descriptorize ComputePipeline 2018-09-05 08:32:53 -04:00
Pipeline.cpp Remove the concept of push constants 2019-05-29 13:16:06 +00:00
Pipeline.h Remove the concept of push constants 2019-05-29 13:16:06 +00:00
PipelineLayout.cpp dawn_native: don't uncache error objects 2019-05-01 15:49:07 +00:00
PipelineLayout.h dawn_native: deduplicate pipeline layouts 2019-05-01 12:57:27 +00:00
ProgrammablePassEncoder.cpp Fix the failures in dynamic buffer offset tests with Vulkan validation layer enabled. 2019-07-05 08:01:10 +00:00
ProgrammablePassEncoder.h Remove the concept of push constants 2019-05-29 13:16:06 +00:00
Queue.cpp Nuke Builders part 4: headers, proctable and miscreferences 2019-04-01 21:48:38 +00:00
Queue.h Nuke Builders Part 1: remove the testing BufferBuilder. 2019-03-28 17:12:47 +00:00
RefCounted.cpp Use single 64bit atomic refcount for Dawn objects 2019-05-23 23:55:14 +00:00
RefCounted.h Use single 64bit atomic refcount for Dawn objects 2019-05-23 23:55:14 +00:00
RenderPassEncoder.cpp Implement RenderPassEncoder::SetViewport - front end 2019-07-04 15:30:59 +00:00
RenderPassEncoder.h Implement RenderPassEncoder::SetViewport - front end 2019-07-04 15:30:59 +00:00
RenderPipeline.cpp Make RenderPipeline::ValidateCompatibleWith produce an error message 2019-06-26 20:28:13 +00:00
RenderPipeline.h Make RenderPipeline::ValidateCompatibleWith produce an error message 2019-06-26 20:28:13 +00:00
RingBuffer.cpp Memory manager: buffer uploads (Metal+refactor) - Part 3 2019-02-15 21:18:40 +00:00
RingBuffer.h Fix missing include for std::unique_ptr in RingBuffer.h 2019-01-30 16:27:28 +00:00
Sampler.cpp dawn_native: handle NaN lod values in samplers 2019-05-22 17:18:52 +00:00
Sampler.h dawn_native: deduplicate samplers 2019-05-20 18:16:34 +00:00
ShaderModule.cpp Remove the concept of push constants 2019-05-29 13:16:06 +00:00
ShaderModule.h Remove the concept of push constants 2019-05-29 13:16:06 +00:00
StagingBuffer.cpp Memory manager: buffer uploads (D3D) - Part 1 2019-01-29 00:10:07 +00:00
StagingBuffer.h Memory manager: buffer uploads (D3D) - Part 1 2019-01-29 00:10:07 +00:00
SwapChain.cpp Capitalize C types dawn -> Dawn 2019-03-11 16:52:42 +00:00
SwapChain.h Nuke Builders Part 1: remove the testing BufferBuilder. 2019-03-28 17:12:47 +00:00
Texture.cpp Support BC5 formats on Vulkan 2019-07-02 23:55:55 +00:00
Texture.h Support BC5 formats on Vulkan 2019-07-02 23:55:55 +00:00
ToBackend.h Input State Descriptorization 2019-03-27 18:08:50 +00:00
Toggles.h Clear Vulkan Textures at first usage 2019-06-11 18:11:05 +00:00
dawn_platform.h Capitalize C types dawn -> Dawn 2019-03-11 16:52:42 +00:00