Reland "Create D3D device and queue"

This is a reland of 29dc430f43e1b27a26d2413ca427109f616539db

Original change's description:
> Create D3D device and queue
> 
> Bug: skia:9935
> Change-Id: Ib6548f413ca3a8befb553d2d47354b400c9162b9
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272520
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>

Bug: skia:9935
Change-Id: I1c8797e09cdeb3694ea7f47b2236ab7d91d9519f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272996
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index e46c6c3..62ab757 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -601,6 +601,9 @@
     public_defines += [ "SK_DIRECT3D" ]
     deps += [ "//third_party/spirv-cross:spirv_cross" ]
     sources += skia_direct3d_sources
+    if (skia_enable_direct3d_debug_layer) {
+      public_defines += [ "SK_ENABLE_D3D_DEBUG_LAYER" ]
+    }
     libs += [
       "d3d12.lib",
       "dxgi.lib",
@@ -1385,6 +1388,7 @@
     }
     if (skia_use_direct3d) {
       sources += [ "tools/gpu/d3d/D3DTestContext.cpp" ]
+      sources += [ "tools/gpu/d3d/D3DTestUtils.cpp" ]
     }
     if (skia_use_dawn) {
       public_deps += [ "//third_party/dawn:dawn_headers" ]