diff --git a/util/test/data/D3D11_Overlay_Test/backbuffer.png b/util/test/data/D3D11_Overlay_Test/backbuffer.png deleted file mode 100644 index 69e126168..000000000 Binary files a/util/test/data/D3D11_Overlay_Test/backbuffer.png and /dev/null differ diff --git a/util/test/data/D3D11_Primitive_Restart/backbuffer.png b/util/test/data/D3D11_Primitive_Restart/backbuffer.png deleted file mode 100644 index fa04502c4..000000000 Binary files a/util/test/data/D3D11_Primitive_Restart/backbuffer.png and /dev/null differ diff --git a/util/test/data/D3D11_Resource_Lifetimes/backbuffer.png b/util/test/data/D3D11_Resource_Lifetimes/backbuffer.png deleted file mode 100644 index d71d6ddec..000000000 Binary files a/util/test/data/D3D11_Resource_Lifetimes/backbuffer.png and /dev/null differ diff --git a/util/test/data/D3D11_Simple_Triangle/backbuffer.png b/util/test/data/D3D11_Simple_Triangle/backbuffer.png deleted file mode 100644 index dbc5b8594..000000000 Binary files a/util/test/data/D3D11_Simple_Triangle/backbuffer.png and /dev/null differ diff --git a/util/test/data/D3D12_Overlay_Test/backbuffer.png b/util/test/data/D3D12_Overlay_Test/backbuffer.png deleted file mode 100644 index 69e126168..000000000 Binary files a/util/test/data/D3D12_Overlay_Test/backbuffer.png and /dev/null differ diff --git a/util/test/data/D3D12_Resource_Lifetimes/backbuffer.png b/util/test/data/D3D12_Resource_Lifetimes/backbuffer.png deleted file mode 100644 index d71d6ddec..000000000 Binary files a/util/test/data/D3D12_Resource_Lifetimes/backbuffer.png and /dev/null differ diff --git a/util/test/data/D3D12_Simple_Triangle/backbuffer.png b/util/test/data/D3D12_Simple_Triangle/backbuffer.png deleted file mode 100644 index dbc5b8594..000000000 Binary files a/util/test/data/D3D12_Simple_Triangle/backbuffer.png and /dev/null differ diff --git a/util/test/data/GL_DX_Interop/backbuffer.png b/util/test/data/GL_DX_Interop/backbuffer.png deleted file mode 100644 index 3603b4f56..000000000 Binary files a/util/test/data/GL_DX_Interop/backbuffer.png and /dev/null differ diff --git a/util/test/data/GL_Overlay_Test/backbuffer.png b/util/test/data/GL_Overlay_Test/backbuffer.png deleted file mode 100644 index 69e126168..000000000 Binary files a/util/test/data/GL_Overlay_Test/backbuffer.png and /dev/null differ diff --git a/util/test/data/GL_Resource_Lifetimes/backbuffer.png b/util/test/data/GL_Resource_Lifetimes/backbuffer.png deleted file mode 100644 index 50aae01b5..000000000 Binary files a/util/test/data/GL_Resource_Lifetimes/backbuffer.png and /dev/null differ diff --git a/util/test/data/GL_Simple_Triangle/backbuffer.png b/util/test/data/GL_Simple_Triangle/backbuffer.png deleted file mode 100644 index dbc5b8594..000000000 Binary files a/util/test/data/GL_Simple_Triangle/backbuffer.png and /dev/null differ diff --git a/util/test/data/GL_VAO_0/backbuffer.png b/util/test/data/GL_VAO_0/backbuffer.png deleted file mode 100644 index 8fe4a7987..000000000 Binary files a/util/test/data/GL_VAO_0/backbuffer.png and /dev/null differ diff --git a/util/test/data/VK_Indirect/backbuffer.png b/util/test/data/VK_Indirect/backbuffer.png deleted file mode 100644 index bf9e07dfd..000000000 Binary files a/util/test/data/VK_Indirect/backbuffer.png and /dev/null differ diff --git a/util/test/data/VK_Int8_IBuffer/backbuffer.png b/util/test/data/VK_Int8_IBuffer/backbuffer.png deleted file mode 100644 index fa04502c4..000000000 Binary files a/util/test/data/VK_Int8_IBuffer/backbuffer.png and /dev/null differ diff --git a/util/test/data/VK_Overlay_Test/backbuffer.png b/util/test/data/VK_Overlay_Test/backbuffer.png deleted file mode 100644 index 69e126168..000000000 Binary files a/util/test/data/VK_Overlay_Test/backbuffer.png and /dev/null differ diff --git a/util/test/data/VK_Resource_Lifetimes/backbuffer.png b/util/test/data/VK_Resource_Lifetimes/backbuffer.png deleted file mode 100644 index d71d6ddec..000000000 Binary files a/util/test/data/VK_Resource_Lifetimes/backbuffer.png and /dev/null differ diff --git a/util/test/data/VK_Secondary_CmdBuf/backbuffer.png b/util/test/data/VK_Secondary_CmdBuf/backbuffer.png deleted file mode 100644 index b1d23a934..000000000 Binary files a/util/test/data/VK_Secondary_CmdBuf/backbuffer.png and /dev/null differ diff --git a/util/test/data/VK_Simple_Triangle/backbuffer.png b/util/test/data/VK_Simple_Triangle/backbuffer.png deleted file mode 100644 index dbc5b8594..000000000 Binary files a/util/test/data/VK_Simple_Triangle/backbuffer.png and /dev/null differ diff --git a/util/test/demos/d3d11/d3d11_1_many_uavs.cpp b/util/test/demos/d3d11/d3d11_1_many_uavs.cpp index 28002416f..7f50051fa 100644 --- a/util/test/demos/d3d11/d3d11_1_many_uavs.cpp +++ b/util/test/demos/d3d11/d3d11_1_many_uavs.cpp @@ -56,7 +56,7 @@ void main() while(Running()) { - Vec4f col(0.4f, 0.5f, 0.6f, 1.0f); + Vec4f col(0.2f, 0.2f, 0.2f, 1.0f); ClearRenderTargetView(bbRTV, col); ctx->ClearUnorderedAccessViewUint(uav, (uint32_t *)&col.x); diff --git a/util/test/demos/d3d11/d3d11_array_interpolator.cpp b/util/test/demos/d3d11/d3d11_array_interpolator.cpp index 959dede7b..7c0393b65 100644 --- a/util/test/demos/d3d11/d3d11_array_interpolator.cpp +++ b/util/test/demos/d3d11/d3d11_array_interpolator.cpp @@ -93,7 +93,7 @@ float4 main(v2f IN) : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_byte_address_buffers.cpp b/util/test/demos/d3d11/d3d11_byte_address_buffers.cpp index b70fbd473..a1bd2729a 100644 --- a/util/test/demos/d3d11/d3d11_byte_address_buffers.cpp +++ b/util/test/demos/d3d11/d3d11_byte_address_buffers.cpp @@ -65,7 +65,7 @@ void main() while(Running()) { - Vec4f col(0.4f, 0.5f, 0.6f, 1.0f); + Vec4f col(0.2f, 0.2f, 0.2f, 1.0f); ClearRenderTargetView(bbRTV, col); ctx->ClearUnorderedAccessViewUint(uav, (uint32_t *)&col.x); diff --git a/util/test/demos/d3d11/d3d11_cbuffer_zoo.cpp b/util/test/demos/d3d11/d3d11_cbuffer_zoo.cpp index 9de2db337..50a3154bc 100644 --- a/util/test/demos/d3d11/d3d11_cbuffer_zoo.cpp +++ b/util/test/demos/d3d11/d3d11_cbuffer_zoo.cpp @@ -291,7 +291,7 @@ float4 main() : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_counter_query_pred.cpp b/util/test/demos/d3d11/d3d11_counter_query_pred.cpp index 4a0df944e..ea4c2b245 100644 --- a/util/test/demos/d3d11/d3d11_counter_query_pred.cpp +++ b/util/test/demos/d3d11/d3d11_counter_query_pred.cpp @@ -184,7 +184,7 @@ RD_TEST(D3D11_Counter_Query_Pred, D3D11GraphicsTest) while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_deferred_map.cpp b/util/test/demos/d3d11/d3d11_deferred_map.cpp index ca7dbc965..47cf39857 100644 --- a/util/test/demos/d3d11/d3d11_deferred_map.cpp +++ b/util/test/demos/d3d11/d3d11_deferred_map.cpp @@ -87,7 +87,7 @@ float4 main(v2f IN) : SV_Target0 Vec4f *data = NULL; while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_deferred_updatesubresource.cpp b/util/test/demos/d3d11/d3d11_deferred_updatesubresource.cpp index 45439c008..b6df2ce93 100644 --- a/util/test/demos/d3d11/d3d11_deferred_updatesubresource.cpp +++ b/util/test/demos/d3d11/d3d11_deferred_updatesubresource.cpp @@ -163,7 +163,7 @@ float4 main(v2f IN) : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_divergent_shader.cpp b/util/test/demos/d3d11/d3d11_divergent_shader.cpp index 9efe5536b..58cbf42be 100644 --- a/util/test/demos/d3d11/d3d11_divergent_shader.cpp +++ b/util/test/demos/d3d11/d3d11_divergent_shader.cpp @@ -143,7 +143,7 @@ float4 main(v2f IN) : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_draw_zoo.cpp b/util/test/demos/d3d11/d3d11_draw_zoo.cpp index 6aab26c91..2ce53c641 100644 --- a/util/test/demos/d3d11/d3d11_draw_zoo.cpp +++ b/util/test/demos/d3d11/d3d11_draw_zoo.cpp @@ -233,7 +233,7 @@ float4 main(v2f IN) : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_empty_compute_dispatch.cpp b/util/test/demos/d3d11/d3d11_empty_compute_dispatch.cpp index 8abff1174..90a0101fb 100644 --- a/util/test/demos/d3d11/d3d11_empty_compute_dispatch.cpp +++ b/util/test/demos/d3d11/d3d11_empty_compute_dispatch.cpp @@ -55,7 +55,7 @@ void main() while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); ctx->CSSetShader(cs, NULL, 0); diff --git a/util/test/demos/d3d11/d3d11_empty_drawcall.cpp b/util/test/demos/d3d11/d3d11_empty_drawcall.cpp index 1f83b5441..a6f29a40d 100644 --- a/util/test/demos/d3d11/d3d11_empty_drawcall.cpp +++ b/util/test/demos/d3d11/d3d11_empty_drawcall.cpp @@ -46,7 +46,7 @@ RD_TEST(D3D11_Empty_Drawcall, D3D11GraphicsTest) while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_empty_viewports.cpp b/util/test/demos/d3d11/d3d11_empty_viewports.cpp index 3601c86c6..8ae27e070 100644 --- a/util/test/demos/d3d11/d3d11_empty_viewports.cpp +++ b/util/test/demos/d3d11/d3d11_empty_viewports.cpp @@ -47,7 +47,7 @@ RD_TEST(D3D11_Empty_Viewports, D3D11GraphicsTest) while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_many_rtvs.cpp b/util/test/demos/d3d11/d3d11_many_rtvs.cpp index 86e4390e6..121346983 100644 --- a/util/test/demos/d3d11/d3d11_many_rtvs.cpp +++ b/util/test/demos/d3d11/d3d11_many_rtvs.cpp @@ -73,7 +73,7 @@ float4 main() : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); diff --git a/util/test/demos/d3d11/d3d11_map_overrun.cpp b/util/test/demos/d3d11/d3d11_map_overrun.cpp index 7ec8e72eb..9facc4945 100644 --- a/util/test/demos/d3d11/d3d11_map_overrun.cpp +++ b/util/test/demos/d3d11/d3d11_map_overrun.cpp @@ -95,7 +95,7 @@ float4 main(v2f IN) : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_mesh_zoo.cpp b/util/test/demos/d3d11/d3d11_mesh_zoo.cpp index 72d112af6..839bb3e2d 100644 --- a/util/test/demos/d3d11/d3d11_mesh_zoo.cpp +++ b/util/test/demos/d3d11/d3d11_mesh_zoo.cpp @@ -142,7 +142,7 @@ float4 main(v2f IN) : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); ctx->ClearDepthStencilView(bbDSV, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); diff --git a/util/test/demos/d3d11/d3d11_midframe_create.cpp b/util/test/demos/d3d11/d3d11_midframe_create.cpp index 1a03e74e6..05e715561 100644 --- a/util/test/demos/d3d11/d3d11_midframe_create.cpp +++ b/util/test/demos/d3d11/d3d11_midframe_create.cpp @@ -115,7 +115,7 @@ float4 main(v2f IN) : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_mip_gen_rt.cpp b/util/test/demos/d3d11/d3d11_mip_gen_rt.cpp index 7ffd0fbf6..b7337329d 100644 --- a/util/test/demos/d3d11/d3d11_mip_gen_rt.cpp +++ b/util/test/demos/d3d11/d3d11_mip_gen_rt.cpp @@ -115,9 +115,9 @@ float4 main(v2f IN) : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); for(int i = 0; i < NumMips; i++) - ClearRenderTargetView(rtv[i], {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(rtv[i], {0.2f, 0.2f, 0.2f, 1.0f}); ctx->UpdateSubresource(rt, 0, NULL, ramp, 1024 * sizeof(uint32_t), 1024 * 1024 * sizeof(uint32_t)); diff --git a/util/test/demos/d3d11/d3d11_mip_rtv.cpp b/util/test/demos/d3d11/d3d11_mip_rtv.cpp index 17173f920..bd2187478 100644 --- a/util/test/demos/d3d11/d3d11_mip_rtv.cpp +++ b/util/test/demos/d3d11/d3d11_mip_rtv.cpp @@ -71,9 +71,9 @@ float4 main() : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); for(int i = 0; i < 4; i++) - ClearRenderTargetView(rtv[i], {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(rtv[i], {0.2f, 0.2f, 0.2f, 1.0f}); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); diff --git a/util/test/demos/d3d11/d3d11_overdraw_stress.cpp b/util/test/demos/d3d11/d3d11_overdraw_stress.cpp index b7c5ed1f3..0f1119900 100644 --- a/util/test/demos/d3d11/d3d11_overdraw_stress.cpp +++ b/util/test/demos/d3d11/d3d11_overdraw_stress.cpp @@ -95,7 +95,7 @@ RD_TEST(D3D11_Overdraw_Stress, D3D11GraphicsTest) while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); ctx->ClearDepthStencilView(bbDSV, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); diff --git a/util/test/demos/d3d11/d3d11_overlay_test.cpp b/util/test/demos/d3d11/d3d11_overlay_test.cpp index b48560936..1c1f06e1b 100644 --- a/util/test/demos/d3d11/d3d11_overlay_test.cpp +++ b/util/test/demos/d3d11/d3d11_overlay_test.cpp @@ -131,7 +131,7 @@ RD_TEST(D3D11_Overlay_Test, D3D11GraphicsTest) ctx->OMSetRenderTargets(1, &bbRTV.GetInterfacePtr(), dsv); - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); ctx->ClearDepthStencilView(dsv, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); // draw the setup triangles diff --git a/util/test/demos/d3d11/d3d11_primitive_restart.cpp b/util/test/demos/d3d11/d3d11_primitive_restart.cpp index 60d712a81..f3b6eae51 100644 --- a/util/test/demos/d3d11/d3d11_primitive_restart.cpp +++ b/util/test/demos/d3d11/d3d11_primitive_restart.cpp @@ -44,23 +44,23 @@ RD_TEST(D3D11_Primitive_Restart, D3D11GraphicsTest) ID3D11PixelShaderPtr ps = CreatePS(psblob); DefaultA2V strip[] = { - {Vec3f(-0.8f, 0.2f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.8f, 0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, {Vec3f(-0.8f, 0.7f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.4f, 0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.4f, 0.7f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.4f, 0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.4f, 0.7f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, {Vec3f(0.0f, 0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.0f, 0.7f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.4f, 0.2f, 0.0f), Vec4f(1.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.4f, 0.7f, 0.0f), Vec4f(1.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.0f, 0.7f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.4f, 0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.4f, 0.7f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.8f, -0.7f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.8f, -0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.8f, -0.7f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.8f, -0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, {Vec3f(-0.4f, -0.7f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.4f, -0.2f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.0f, -0.7f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.4f, -0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.0f, -0.7f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, {Vec3f(0.0f, -0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.4f, -0.7f, 0.0f), Vec4f(1.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.4f, -0.2f, 0.0f), Vec4f(1.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.4f, -0.7f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.4f, -0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, }; ID3D11BufferPtr vb = MakeBuffer().Vertex().Data(strip); @@ -93,7 +93,7 @@ RD_TEST(D3D11_Primitive_Restart, D3D11GraphicsTest) while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetIndexBuffer(ib, DXGI_FORMAT_R16_UINT, 0); @@ -109,7 +109,7 @@ RD_TEST(D3D11_Primitive_Restart, D3D11GraphicsTest) ctx->DrawIndexed(17, 0, 0); - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); ctx->IASetIndexBuffer(ib2, DXGI_FORMAT_R16_UINT, 0); diff --git a/util/test/demos/d3d11/d3d11_refcount_check.cpp b/util/test/demos/d3d11/d3d11_refcount_check.cpp index 36caf0fa5..1401f1ea7 100644 --- a/util/test/demos/d3d11/d3d11_refcount_check.cpp +++ b/util/test/demos/d3d11/d3d11_refcount_check.cpp @@ -53,7 +53,7 @@ RD_TEST(D3D11_Refcount_Check, D3D11GraphicsTest) while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_resource_lifetimes.cpp b/util/test/demos/d3d11/d3d11_resource_lifetimes.cpp index 19cdb152e..173339f83 100644 --- a/util/test/demos/d3d11/d3d11_resource_lifetimes.cpp +++ b/util/test/demos/d3d11/d3d11_resource_lifetimes.cpp @@ -42,7 +42,8 @@ struct v2f Texture2D smiley : register(t0); Texture2D checker : register(t1); -SamplerState samp : register(s0); +SamplerState smileysamp : register(s0); +SamplerState checkersamp : register(s1); cbuffer consts : register(b0) { @@ -54,7 +55,9 @@ float4 main(v2f IN) : SV_Target0 if(flags.x != 1.0f || flags.y != 2.0f || flags.z != 4.0f || flags.w != 8.0f) return float4(1.0f, 0.0f, 1.0f, 1.0f); - return smiley.Sample(samp, IN.uv * 2.0f) * checker.Sample(samp, IN.uv * 5.0f); + float4 col = smiley.Sample(smileysamp, IN.uv * 2.0f) * checker.Sample(checkersamp, IN.uv * 5.0f); + col.w = 1.0f; + return col; } )EOSHADER"; @@ -84,7 +87,13 @@ float4 main(v2f IN) : SV_Target0 ctx->UpdateSubresource(smiley, 0, NULL, rgba8.data.data(), rgba8.width * sizeof(uint32_t), 0); - ID3D11SamplerStatePtr samp = MakeSampler().Address(D3D11_TEXTURE_ADDRESS_WRAP); + ID3D11SamplerStatePtr smileysamp = MakeSampler() + .AddressU(D3D11_TEXTURE_ADDRESS_CLAMP) + .AddressV(D3D11_TEXTURE_ADDRESS_WRAP) + .AddressW(D3D11_TEXTURE_ADDRESS_WRAP) + .Filter(D3D11_FILTER_MIN_MAG_MIP_POINT); + ID3D11SamplerStatePtr checkersamp = + MakeSampler().Address(D3D11_TEXTURE_ADDRESS_WRAP).Filter(D3D11_FILTER_MIN_MAG_MIP_POINT); auto SetupBuf = [this]() { const Vec4f flags = {1.0f, 2.0f, 4.0f, 8.0f}; @@ -155,16 +164,20 @@ float4 main(v2f IN) : SV_Target0 srv = NULL; }; - ID3D11ShaderResourceView *srvs[2] = {smileysrv}; + ID3D11Texture2DPtr clearTex = MakeTexture(DXGI_FORMAT_R8G8B8A8_UNORM, 128, 128).RTV(); + ID3D11RenderTargetViewPtr clearRTV = MakeRTV(clearTex); - ctx->PSSetSamplers(0, 1, &samp.GetInterfacePtr()); + ID3D11ShaderResourceView *srvs[2] = {smileysrv}; + ID3D11SamplerState *samps[2] = {smileysamp, checkersamp}; + + ctx->PSSetSamplers(0, 2, samps); ID3D11BufferPtr cb = SetupBuf(); ID3D11ShaderResourceViewPtr srv = SetupSRV(); srvs[1] = srv; while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); @@ -174,6 +187,12 @@ float4 main(v2f IN) : SV_Target0 ctx->PSSetShader(ps, NULL, 0); ctx->OMSetRenderTargets(1, &bbRTV.GetInterfacePtr(), NULL); + // lazy partial clears! + ClearRenderTargetView(clearRTV, {0.0f, 1.0f, 0.0f, 1.0f}); + ctx->CopySubresourceRegion(bbTex, 0, 0, 0, 0, clearTex, 0, NULL); + ClearRenderTargetView(clearRTV, {0.0f, 0.0f, 1.0f, 1.0f}); + ctx->CopySubresourceRegion(bbTex, 0, 128, 0, 0, clearTex, 0, NULL); + // render with last frame's resources RSSetViewport({0.0f, 0.0f, 128.0f, 128.0f, 0.0f, 1.0f}); ctx->Draw(3, 0); diff --git a/util/test/demos/d3d11/d3d11_saturate.cpp b/util/test/demos/d3d11/d3d11_saturate.cpp index 01e00564c..579b812dc 100644 --- a/util/test/demos/d3d11/d3d11_saturate.cpp +++ b/util/test/demos/d3d11/d3d11_saturate.cpp @@ -79,9 +79,9 @@ void main(float4 pos : SV_Position, out float4 a : SV_Target0, out float4 b : SV while(Running()) { - ClearRenderTargetView(fltRT[0], {0.4f, 0.5f, 0.6f, 1.0f}); - ClearRenderTargetView(fltRT[1], {0.4f, 0.5f, 0.6f, 1.0f}); - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(fltRT[0], {0.2f, 0.2f, 0.2f, 1.0f}); + ClearRenderTargetView(fltRT[1], {0.2f, 0.2f, 0.2f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_shader_debug_zoo.cpp b/util/test/demos/d3d11/d3d11_shader_debug_zoo.cpp index 29f11cf6c..91834f87a 100644 --- a/util/test/demos/d3d11/d3d11_shader_debug_zoo.cpp +++ b/util/test/demos/d3d11/d3d11_shader_debug_zoo.cpp @@ -657,8 +657,8 @@ float4 main(v2f IN) : SV_Target0 while(Running()) { - ClearRenderTargetView(fltRT, {0.4f, 0.5f, 0.6f, 1.0f}); - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(fltRT, {0.2f, 0.2f, 0.2f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(ConstsA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_shader_editing.cpp b/util/test/demos/d3d11/d3d11_shader_editing.cpp index cecbb66ed..ba837ff7e 100644 --- a/util/test/demos/d3d11/d3d11_shader_editing.cpp +++ b/util/test/demos/d3d11/d3d11_shader_editing.cpp @@ -78,8 +78,8 @@ float4 main() : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); - ClearRenderTargetView(fltRT, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); + ClearRenderTargetView(fltRT, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_shader_isa.cpp b/util/test/demos/d3d11/d3d11_shader_isa.cpp index effd7b675..8d4614878 100644 --- a/util/test/demos/d3d11/d3d11_shader_isa.cpp +++ b/util/test/demos/d3d11/d3d11_shader_isa.cpp @@ -52,8 +52,8 @@ RD_TEST(D3D11_Shader_ISA, D3D11GraphicsTest) while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); - ClearRenderTargetView(fltRT, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); + ClearRenderTargetView(fltRT, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_simple_dispatch.cpp b/util/test/demos/d3d11/d3d11_simple_dispatch.cpp index 13637b713..5db451302 100644 --- a/util/test/demos/d3d11/d3d11_simple_dispatch.cpp +++ b/util/test/demos/d3d11/d3d11_simple_dispatch.cpp @@ -76,7 +76,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; ctx->ClearRenderTargetView(bbRTV, col); ctx->CSSetShader(cs, NULL, 0); diff --git a/util/test/demos/d3d11/d3d11_simple_triangle.cpp b/util/test/demos/d3d11/d3d11_simple_triangle.cpp index 1fd5c9842..755726933 100644 --- a/util/test/demos/d3d11/d3d11_simple_triangle.cpp +++ b/util/test/demos/d3d11/d3d11_simple_triangle.cpp @@ -52,8 +52,8 @@ RD_TEST(D3D11_Simple_Triangle, D3D11GraphicsTest) while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); - ClearRenderTargetView(fltRT, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); + ClearRenderTargetView(fltRT, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_stream_out.cpp b/util/test/demos/d3d11/d3d11_stream_out.cpp index 647ebdcd5..be1b8cb42 100644 --- a/util/test/demos/d3d11/d3d11_stream_out.cpp +++ b/util/test/demos/d3d11/d3d11_stream_out.cpp @@ -101,7 +101,7 @@ RD_TEST(D3D11_Stream_Out, D3D11GraphicsTest) ctx->UpdateSubresource(so[0], 0, NULL, empty, 2048, 2048); ctx->UpdateSubresource(so[1], 0, NULL, empty, 2048, 2048); - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); @@ -124,14 +124,14 @@ RD_TEST(D3D11_Stream_Out, D3D11GraphicsTest) ctx->UpdateSubresource(so[0], 0, NULL, empty, 2048, 2048); ctx->UpdateSubresource(so[1], 0, NULL, empty, 2048, 2048); - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); ctx->Draw(3, 0); ctx->UpdateSubresource(so[0], 0, NULL, empty, 2048, 2048); ctx->UpdateSubresource(so[1], 0, NULL, empty, 2048, 2048); - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); // test using offsets of NULL. Should be equivalent to passing -1 bufs[0] = so[1]; diff --git a/util/test/demos/d3d11/d3d11_stripped_shaders.cpp b/util/test/demos/d3d11/d3d11_stripped_shaders.cpp index 50f0b49b3..e4a25db49 100644 --- a/util/test/demos/d3d11/d3d11_stripped_shaders.cpp +++ b/util/test/demos/d3d11/d3d11_stripped_shaders.cpp @@ -57,7 +57,7 @@ RD_TEST(D3D11_Stripped_Shaders, D3D11GraphicsTest) while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_structured_buffer_misaligned_dirty.cpp b/util/test/demos/d3d11/d3d11_structured_buffer_misaligned_dirty.cpp index 87042de23..ec8d5cbc4 100644 --- a/util/test/demos/d3d11/d3d11_structured_buffer_misaligned_dirty.cpp +++ b/util/test/demos/d3d11/d3d11_structured_buffer_misaligned_dirty.cpp @@ -93,7 +93,7 @@ float4 main() : SV_Target0 { ctx->Flush(); - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); // map the buffer, but only update a misaligned section - so the update won't be aligned to // structured size. diff --git a/util/test/demos/d3d11/d3d11_structured_buffer_nested.cpp b/util/test/demos/d3d11/d3d11_structured_buffer_nested.cpp index 685e08f0e..9a8591693 100644 --- a/util/test/demos/d3d11/d3d11_structured_buffer_nested.cpp +++ b/util/test/demos/d3d11/d3d11_structured_buffer_nested.cpp @@ -107,7 +107,7 @@ float4 main() : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_structured_buffer_read.cpp b/util/test/demos/d3d11/d3d11_structured_buffer_read.cpp index 254fe12e1..ec9b402bd 100644 --- a/util/test/demos/d3d11/d3d11_structured_buffer_read.cpp +++ b/util/test/demos/d3d11/d3d11_structured_buffer_read.cpp @@ -79,7 +79,7 @@ float4 main() : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_texture_3d.cpp b/util/test/demos/d3d11/d3d11_texture_3d.cpp index 7f20c28fd..1de83e4ad 100644 --- a/util/test/demos/d3d11/d3d11_texture_3d.cpp +++ b/util/test/demos/d3d11/d3d11_texture_3d.cpp @@ -241,7 +241,7 @@ float4 main(v2f IN) : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_texture_zoo.cpp b/util/test/demos/d3d11/d3d11_texture_zoo.cpp index f3a3734d1..ccdd7320f 100644 --- a/util/test/demos/d3d11/d3d11_texture_zoo.cpp +++ b/util/test/demos/d3d11/d3d11_texture_zoo.cpp @@ -1029,7 +1029,7 @@ int4 main(float4 pos : SV_Position, uint samp : SV_SampleIndex) : SV_Target0 while(Running()) { ctx->ClearState(); - ClearRenderTargetView(fltRT, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(fltRT, {0.2f, 0.2f, 0.2f, 1.0f}); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); diff --git a/util/test/demos/d3d11/d3d11_untyped_backbuffer_descriptor.cpp b/util/test/demos/d3d11/d3d11_untyped_backbuffer_descriptor.cpp index 4ddaa9937..31b1f76c5 100644 --- a/util/test/demos/d3d11/d3d11_untyped_backbuffer_descriptor.cpp +++ b/util/test/demos/d3d11/d3d11_untyped_backbuffer_descriptor.cpp @@ -53,7 +53,7 @@ RD_TEST(D3D11_Untyped_Backbuffer_Descriptor, D3D11GraphicsTest) while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_vertex_attr_zoo.cpp b/util/test/demos/d3d11/d3d11_vertex_attr_zoo.cpp index b0c350bec..32be14c49 100644 --- a/util/test/demos/d3d11/d3d11_vertex_attr_zoo.cpp +++ b/util/test/demos/d3d11/d3d11_vertex_attr_zoo.cpp @@ -206,7 +206,7 @@ void main(triangle v2f input[3], inout TriangleStream TriStream) while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(vertin), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d11/d3d11_video_textures.cpp b/util/test/demos/d3d11/d3d11_video_textures.cpp index 967b299ab..fa5e7b8d7 100644 --- a/util/test/demos/d3d11/d3d11_video_textures.cpp +++ b/util/test/demos/d3d11/d3d11_video_textures.cpp @@ -755,7 +755,7 @@ float4 main(v2f IN) : SV_Target0 while(Running()) { - ClearRenderTargetView(bbRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(vb, sizeof(DefaultA2V), 0); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); diff --git a/util/test/demos/d3d12/d3d12_cbuffer_zoo.cpp b/util/test/demos/d3d12/d3d12_cbuffer_zoo.cpp index f834deca8..a89eb78b6 100644 --- a/util/test/demos/d3d12/d3d12_cbuffer_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_cbuffer_zoo.cpp @@ -355,11 +355,11 @@ float4 main() : SV_Target0 D3D12_CPU_DESCRIPTOR_HANDLE bbrtv = MakeRTV(bb).Format(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB).CreateCPU(0); - ClearRenderTargetView(cmd, bbrtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, bbrtv, {0.2f, 0.2f, 0.2f, 1.0f}); D3D12_CPU_DESCRIPTOR_HANDLE offrtv = MakeRTV(rtvtex).CreateCPU(0); - ClearRenderTargetView(cmd, offrtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, offrtv, {0.2f, 0.2f, 0.2f, 1.0f}); cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d12/d3d12_mesh_zoo.cpp b/util/test/demos/d3d12/d3d12_mesh_zoo.cpp index 4a4f046f1..9e3b454d6 100644 --- a/util/test/demos/d3d12/d3d12_mesh_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_mesh_zoo.cpp @@ -155,7 +155,7 @@ float4 main(v2f IN) : SV_Target0 OMSetRenderTargets(cmd, {rtv}, MakeDSV(dsv).CreateCPU(0)); - ClearRenderTargetView(cmd, rtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f}); ClearDepthStencilView(cmd, dsv, D3D12_CLEAR_FLAG_DEPTH | D3D12_CLEAR_FLAG_STENCIL, 1.0f, 0); cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d12/d3d12_overlay_test.cpp b/util/test/demos/d3d12/d3d12_overlay_test.cpp index 0fdfd41db..dce99ac81 100644 --- a/util/test/demos/d3d12/d3d12_overlay_test.cpp +++ b/util/test/demos/d3d12/d3d12_overlay_test.cpp @@ -161,7 +161,7 @@ RD_TEST(D3D12_Overlay_Test, D3D12GraphicsTest) OMSetRenderTargets(cmd, {rtv}, MakeDSV(dsv).CreateCPU(0)); - ClearRenderTargetView(cmd, rtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f}); ClearDepthStencilView(cmd, dsv, D3D12_CLEAR_FLAG_DEPTH | D3D12_CLEAR_FLAG_STENCIL, 1.0f, 0); cmd->OMSetStencilRef(0x55); diff --git a/util/test/demos/d3d12/d3d12_resource_lifetimes.cpp b/util/test/demos/d3d12/d3d12_resource_lifetimes.cpp index a942a3f51..dcf027977 100644 --- a/util/test/demos/d3d12/d3d12_resource_lifetimes.cpp +++ b/util/test/demos/d3d12/d3d12_resource_lifetimes.cpp @@ -42,7 +42,8 @@ struct v2f Texture2D smiley : register(t0); Texture2D checker : register(t1); -SamplerState samp : register(s0); +SamplerState smileysamp : register(s0); +SamplerState checkersamp : register(s1); cbuffer consts : register(b0) { @@ -54,7 +55,9 @@ float4 main(v2f IN) : SV_Target0 if(flags.x != 1.0f || flags.y != 2.0f || flags.z != 4.0f || flags.w != 8.0f) return float4(1.0f, 0.0f, 1.0f, 1.0f); - return smiley.Sample(samp, IN.uv * 2.0f) * checker.Sample(samp, IN.uv * 5.0f); + float4 col = smiley.Sample(smileysamp, IN.uv * 2.0f) * checker.Sample(checkersamp, IN.uv * 5.0f); + col.w = 1.0f; + return col; } )EOSHADER"; @@ -71,8 +74,8 @@ float4 main(v2f IN) : SV_Target0 ID3D12ResourcePtr vb = MakeBuffer().Data(DefaultTri); D3D12_STATIC_SAMPLER_DESC samp = { - D3D12_FILTER_MIN_MAG_MIP_LINEAR, - D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_FILTER_MIN_MAG_MIP_POINT, + D3D12_TEXTURE_ADDRESS_MODE_CLAMP, D3D12_TEXTURE_ADDRESS_MODE_WRAP, D3D12_TEXTURE_ADDRESS_MODE_WRAP, 0.0f, @@ -86,13 +89,18 @@ float4 main(v2f IN) : SV_Target0 D3D12_SHADER_VISIBILITY_PIXEL, }; + D3D12_STATIC_SAMPLER_DESC samps[2]; + samps[0] = samps[1] = samp; + samps[1].ShaderRegister = 1; + samps[1].AddressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP; + ID3D12RootSignaturePtr sig = MakeSig( { tableParam(D3D12_SHADER_VISIBILITY_PIXEL, D3D12_DESCRIPTOR_RANGE_TYPE_SRV, 0, 0, 1, 0), tableParam(D3D12_SHADER_VISIBILITY_PIXEL, D3D12_DESCRIPTOR_RANGE_TYPE_SRV, 0, 1, 1, 1), tableParam(D3D12_SHADER_VISIBILITY_PIXEL, D3D12_DESCRIPTOR_RANGE_TYPE_CBV, 0, 0, 1, 2), }, - D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT, 1, &samp); + D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT, 2, samps); ID3D12PipelineStatePtr pso = MakePSO().RootSig(sig).InputLayout().VS(vsblob).PS(psblob); @@ -420,7 +428,15 @@ float4 main(v2f IN) : SV_Target0 rtv = MakeRTV(bb).Format(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB).CreateCPU(0); - ClearRenderTargetView(cmd, rtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f}); + + D3D12_RECT rect = {0, 0, 128, 128}; + Vec4f col(0.0f, 1.0f, 0.0f, 1.0f); + cmd->ClearRenderTargetView(rtv, &col.x, 1, &rect); + + rect = {128, 0, 256, 128}; + col = Vec4f(0.0f, 0.0f, 1.0f, 1.0f); + cmd->ClearRenderTargetView(rtv, &col.x, 1, &rect); cmd->Close(); diff --git a/util/test/demos/d3d12/d3d12_shader_debug_zoo.cpp b/util/test/demos/d3d12/d3d12_shader_debug_zoo.cpp index 0df2a933f..5eb2a30cf 100644 --- a/util/test/demos/d3d12/d3d12_shader_debug_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_shader_debug_zoo.cpp @@ -716,7 +716,7 @@ float4 main(v2f IN) : SV_Target0 D3D12_CPU_DESCRIPTOR_HANDLE rtv = MakeRTV(bb).Format(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB).CreateCPU(1); - ClearRenderTargetView(cmd, rtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f}); ID3D12PipelineStatePtr psos[2] = {pso_5_0, pso_5_1}; float blitOffsets[2] = {0.0f, 4.0f}; @@ -726,7 +726,7 @@ float4 main(v2f IN) : SV_Target0 // Clear, draw, and blit to backbuffer twice - once for SM 5.0 and again for SM 5.1 for(int i = 0; i < 2; ++i) { - ClearRenderTargetView(cmd, fltRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, fltRTV, {0.2f, 0.2f, 0.2f, 1.0f}); IASetVertexBuffer(cmd, vb, sizeof(ConstsA2V), 0); cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d12/d3d12_shader_editing.cpp b/util/test/demos/d3d12/d3d12_shader_editing.cpp index dceaab696..a3dec18e9 100644 --- a/util/test/demos/d3d12/d3d12_shader_editing.cpp +++ b/util/test/demos/d3d12/d3d12_shader_editing.cpp @@ -93,8 +93,8 @@ float4 main() : SV_Target0 D3D12_CPU_DESCRIPTOR_HANDLE offrtv = MakeRTV(rtvtex).CreateCPU(0); - ClearRenderTargetView(cmd, offrtv, {0.4f, 0.5f, 0.6f, 1.0f}); - ClearRenderTargetView(cmd, bbrtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, offrtv, {0.2f, 0.2f, 0.2f, 1.0f}); + ClearRenderTargetView(cmd, bbrtv, {0.2f, 0.2f, 0.2f, 1.0f}); cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d12/d3d12_shader_isa.cpp b/util/test/demos/d3d12/d3d12_shader_isa.cpp index 1f26e4e78..63361231c 100644 --- a/util/test/demos/d3d12/d3d12_shader_isa.cpp +++ b/util/test/demos/d3d12/d3d12_shader_isa.cpp @@ -62,9 +62,9 @@ RD_TEST(D3D12_Shader_ISA, D3D12GraphicsTest) D3D12_CPU_DESCRIPTOR_HANDLE rtv = MakeRTV(bb).Format(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB).CreateCPU(0); - ClearRenderTargetView(cmd, rtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f}); - ClearRenderTargetView(cmd, MakeRTV(rtvtex).CreateCPU(1), {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, MakeRTV(rtvtex).CreateCPU(1), {0.2f, 0.2f, 0.2f, 1.0f}); cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d12/d3d12_simple_triangle.cpp b/util/test/demos/d3d12/d3d12_simple_triangle.cpp index 5b1e5a3ea..2e64e220f 100644 --- a/util/test/demos/d3d12/d3d12_simple_triangle.cpp +++ b/util/test/demos/d3d12/d3d12_simple_triangle.cpp @@ -62,9 +62,9 @@ RD_TEST(D3D12_Simple_Triangle, D3D12GraphicsTest) D3D12_CPU_DESCRIPTOR_HANDLE rtv = MakeRTV(bb).Format(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB).CreateCPU(0); - ClearRenderTargetView(cmd, rtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f}); - ClearRenderTargetView(cmd, MakeRTV(rtvtex).CreateCPU(1), {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, MakeRTV(rtvtex).CreateCPU(1), {0.2f, 0.2f, 0.2f, 1.0f}); cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d12/d3d12_test.cpp b/util/test/demos/d3d12/d3d12_test.cpp index 612b4d1cb..e9e4d175e 100644 --- a/util/test/demos/d3d12/d3d12_test.cpp +++ b/util/test/demos/d3d12/d3d12_test.cpp @@ -260,6 +260,9 @@ bool D3D12GraphicsTest::Init() bbDesc.SampleDesc.Quality = 0; bbDesc.Width = screenWidth; + if(bbDesc.Format == DXGI_FORMAT_R8G8B8A8_UNORM) + bbDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; + D3D12_HEAP_PROPERTIES heapProps; heapProps.Type = D3D12_HEAP_TYPE_DEFAULT; heapProps.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; diff --git a/util/test/demos/d3d12/d3d12_texture_zoo.cpp b/util/test/demos/d3d12/d3d12_texture_zoo.cpp index 48f27e5d6..f76e6c449 100644 --- a/util/test/demos/d3d12/d3d12_texture_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_texture_zoo.cpp @@ -1127,7 +1127,7 @@ int4 main(float4 pos : SV_Position, uint samp : SV_SampleIndex) : SV_Target0 D3D12_CPU_DESCRIPTOR_HANDLE fltRTV = MakeRTV(fltTex).CreateCPU(0); - ClearRenderTargetView(cmd, fltRTV, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, fltRTV, {0.2f, 0.2f, 0.2f, 1.0f}); cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); @@ -1195,7 +1195,7 @@ int4 main(float4 pos : SV_Position, uint samp : SV_SampleIndex) : SV_Target0 D3D12_CPU_DESCRIPTOR_HANDLE rtv = MakeRTV(bb).Format(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB).CreateCPU(0); - ClearRenderTargetView(cmd, rtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f}); OMSetRenderTargets(cmd, {rtv}, {}); diff --git a/util/test/demos/d3d12/d3d12_untyped_backbuffer_descriptor.cpp b/util/test/demos/d3d12/d3d12_untyped_backbuffer_descriptor.cpp index 9646fec95..48c532a81 100644 --- a/util/test/demos/d3d12/d3d12_untyped_backbuffer_descriptor.cpp +++ b/util/test/demos/d3d12/d3d12_untyped_backbuffer_descriptor.cpp @@ -60,7 +60,7 @@ RD_TEST(D3D12_Untyped_Backbuffer_Descriptor, D3D12GraphicsTest) // create a descriptor with an UNKNOWN format D3D12_CPU_DESCRIPTOR_HANDLE rtv = MakeRTV(bb).Format(DXGI_FORMAT_UNKNOWN).CreateCPU(0); - ClearRenderTargetView(cmd, rtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f}); cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d12/d3d12_vertex_attr_zoo.cpp b/util/test/demos/d3d12/d3d12_vertex_attr_zoo.cpp index 410031245..7ce8fa0d9 100644 --- a/util/test/demos/d3d12/d3d12_vertex_attr_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_vertex_attr_zoo.cpp @@ -211,7 +211,7 @@ void main(triangle v2f input[3], inout TriangleStream TriStream) D3D12_CPU_DESCRIPTOR_HANDLE rtv = MakeRTV(bb).Format(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB).CreateCPU(0); - ClearRenderTargetView(cmd, rtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f}); cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); diff --git a/util/test/demos/d3d12/d3d12_video_textures.cpp b/util/test/demos/d3d12/d3d12_video_textures.cpp index 3dce30104..030134398 100644 --- a/util/test/demos/d3d12/d3d12_video_textures.cpp +++ b/util/test/demos/d3d12/d3d12_video_textures.cpp @@ -648,7 +648,7 @@ float4 main(v2f IN) : SV_Target0 OMSetRenderTargets(cmd, {rtv}, {}); - ClearRenderTargetView(cmd, rtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f}); cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); diff --git a/util/test/demos/d3d12/d3d12_write_subresource.cpp b/util/test/demos/d3d12/d3d12_write_subresource.cpp index aca307e30..7145f1ebc 100644 --- a/util/test/demos/d3d12/d3d12_write_subresource.cpp +++ b/util/test/demos/d3d12/d3d12_write_subresource.cpp @@ -121,7 +121,7 @@ float4 main(v2f IN) : SV_Target0 D3D12_CPU_DESCRIPTOR_HANDLE rtv = MakeRTV(bb).Format(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB).CreateCPU(0); - ClearRenderTargetView(cmd, rtv, {0.4f, 0.5f, 0.6f, 1.0f}); + ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f}); cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); diff --git a/util/test/demos/gl/gl_buffer_spam.cpp b/util/test/demos/gl/gl_buffer_spam.cpp index a881fc830..8a9e60d72 100644 --- a/util/test/demos/gl/gl_buffer_spam.cpp +++ b/util/test/demos/gl/gl_buffer_spam.cpp @@ -110,7 +110,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_buffer_updates.cpp b/util/test/demos/gl/gl_buffer_updates.cpp index ba5c8968c..7ff7272e5 100644 --- a/util/test/demos/gl/gl_buffer_updates.cpp +++ b/util/test/demos/gl/gl_buffer_updates.cpp @@ -278,7 +278,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_callstacks.cpp b/util/test/demos/gl/gl_callstacks.cpp index 62440d3f3..8cabe1c0e 100644 --- a/util/test/demos/gl/gl_callstacks.cpp +++ b/util/test/demos/gl/gl_callstacks.cpp @@ -105,7 +105,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_cbuffer_zoo.cpp b/util/test/demos/gl/gl_cbuffer_zoo.cpp index 094c7a546..da2f7e76a 100644 --- a/util/test/demos/gl/gl_cbuffer_zoo.cpp +++ b/util/test/demos/gl/gl_cbuffer_zoo.cpp @@ -383,7 +383,7 @@ void main() { glBindFramebuffer(GL_FRAMEBUFFER, 0); - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindFramebuffer(GL_FRAMEBUFFER, fbo); diff --git a/util/test/demos/gl/gl_depthstencil_fbo.cpp b/util/test/demos/gl/gl_depthstencil_fbo.cpp index d0e0905c2..f8ac58623 100644 --- a/util/test/demos/gl/gl_depthstencil_fbo.cpp +++ b/util/test/demos/gl/gl_depthstencil_fbo.cpp @@ -162,7 +162,7 @@ void main() GLenum bufs[] = {GL_COLOR_ATTACHMENT0}; glDrawBuffers(1, bufs); - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glClearBufferfi(GL_DEPTH_STENCIL, 0, 1.0f, 0); diff --git a/util/test/demos/gl/gl_dx_interop.cpp b/util/test/demos/gl/gl_dx_interop.cpp index acd4fcf95..faf3750d0 100644 --- a/util/test/demos/gl/gl_dx_interop.cpp +++ b/util/test/demos/gl/gl_dx_interop.cpp @@ -157,8 +157,8 @@ void main() ID3D11ShaderResourceViewPtr srv = d3d.MakeSRV(d3d_tod3d); ID3D11RenderTargetViewPtr rtv2 = d3d.MakeRTV(d3d_tod3d); - float black[4] = {}; - d3d.ctx->ClearRenderTargetView(rtv2, black); + float base[4] = {0.2f, 0.2f, 0.2f, 1.0f}; + d3d.ctx->ClearRenderTargetView(rtv2, base); // initialise, create window, create context, etc if(!Init()) @@ -244,7 +244,7 @@ void main() TEST_ASSERT(res, "wglDXLockObjectsNV buffer failed"); - float col2[] = {0.6f, 0.4f, 0.6f, 1.0f}; + float col2[] = {0.0f, 1.0f, 0.0f, 1.0f}; ctx->ClearRenderTargetView(rtv, col2); ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); @@ -273,13 +273,11 @@ void main() glUseProgram(program); - glUniform2f(glGetUniformLocation(program, "wave"), sinf(delta * 0.9f), -cosf(delta * 2.7f)); - delta += 0.1f; glBindTexture(GL_TEXTURE_2D, gl_fromd3d); - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {1.0f, 0.0f, 0.0f, 1.0f}; // render back into d3d glViewport(0, 0, 1024, 1024); diff --git a/util/test/demos/gl/gl_entry_points.cpp b/util/test/demos/gl/gl_entry_points.cpp index b4f44f2c1..dfa51cd99 100644 --- a/util/test/demos/gl/gl_entry_points.cpp +++ b/util/test/demos/gl/gl_entry_points.cpp @@ -79,7 +79,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_large_bcn_arrays.cpp b/util/test/demos/gl/gl_large_bcn_arrays.cpp index 4095d6ae1..98d32cc2c 100644 --- a/util/test/demos/gl/gl_large_bcn_arrays.cpp +++ b/util/test/demos/gl/gl_large_bcn_arrays.cpp @@ -166,7 +166,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_map_overrun.cpp b/util/test/demos/gl/gl_map_overrun.cpp index f384158a8..dcdb780a6 100644 --- a/util/test/demos/gl/gl_map_overrun.cpp +++ b/util/test/demos/gl/gl_map_overrun.cpp @@ -104,7 +104,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_mesh_zoo.cpp b/util/test/demos/gl/gl_mesh_zoo.cpp index b6b45d694..ab053b889 100644 --- a/util/test/demos/gl/gl_mesh_zoo.cpp +++ b/util/test/demos/gl/gl_mesh_zoo.cpp @@ -211,7 +211,7 @@ void main() while(Running()) { glBindFramebuffer(GL_FRAMEBUFFER, fbo); - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glClearBufferfi(GL_DEPTH_STENCIL, 0, 1.0f, 0); diff --git a/util/test/demos/gl/gl_midframe_context_create.cpp b/util/test/demos/gl/gl_midframe_context_create.cpp index 80d07b59d..fbf275279 100644 --- a/util/test/demos/gl/gl_midframe_context_create.cpp +++ b/util/test/demos/gl/gl_midframe_context_create.cpp @@ -109,7 +109,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glUseProgram(program); diff --git a/util/test/demos/gl/gl_mip_gen_rt.cpp b/util/test/demos/gl/gl_mip_gen_rt.cpp index 781cb281b..35cefae3d 100644 --- a/util/test/demos/gl/gl_mip_gen_rt.cpp +++ b/util/test/demos/gl/gl_mip_gen_rt.cpp @@ -109,7 +109,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glBindFramebuffer(GL_FRAMEBUFFER, 0); glClearBufferfv(GL_COLOR, 0, col); diff --git a/util/test/demos/gl/gl_multi_window.cpp b/util/test/demos/gl/gl_multi_window.cpp index ca8898e1b..3ce914db1 100644 --- a/util/test/demos/gl/gl_multi_window.cpp +++ b/util/test/demos/gl/gl_multi_window.cpp @@ -123,7 +123,7 @@ void main() { ActivateContext(mainWindow, mainContext); - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_overlay_test.cpp b/util/test/demos/gl/gl_overlay_test.cpp index bfafdc7ce..62b6f2748 100644 --- a/util/test/demos/gl/gl_overlay_test.cpp +++ b/util/test/demos/gl/gl_overlay_test.cpp @@ -192,7 +192,7 @@ void main() glViewport(10, 10, GLsizei(screenWidth) - 20, GLsizei(screenHeight) - 20); glBindFramebuffer(GL_FRAMEBUFFER, fbo); - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glClearBufferfi(GL_DEPTH_STENCIL, 0, 1.0f, 0); diff --git a/util/test/demos/gl/gl_per_type_tex_units.cpp b/util/test/demos/gl/gl_per_type_tex_units.cpp index f7a0b7d55..10147de7e 100644 --- a/util/test/demos/gl/gl_per_type_tex_units.cpp +++ b/util/test/demos/gl/gl_per_type_tex_units.cpp @@ -139,7 +139,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_resource_lifetimes.cpp b/util/test/demos/gl/gl_resource_lifetimes.cpp index a13dd6d0c..60588b27f 100644 --- a/util/test/demos/gl/gl_resource_lifetimes.cpp +++ b/util/test/demos/gl/gl_resource_lifetimes.cpp @@ -378,15 +378,16 @@ void main() glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0); - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearNamedFramebufferfv(0, GL_COLOR, 0, col); // render with last frame's resources - float col1[] = {0.5f, 0.1f, 0.1f, 1.0f}; + float col1[] = {0.0f, 1.0f, 0.0f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col1); glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_SHORT, NULL); - glBlitNamedFramebuffer(fbo, 0, 0, 0, 128, 128, 0, 0, 128, 128, GL_COLOR_BUFFER_BIT, GL_NEAREST); + glBlitNamedFramebuffer(fbo, 0, 0, 0, 128, 128, 0, screenHeight - 128, 128, screenHeight, + GL_COLOR_BUFFER_BIT, GL_NEAREST); // trash last frame's resources TrashFBO(fbo); @@ -407,12 +408,12 @@ void main() pipe = SetupPipe(vsprog, fsprog); tex = SetupTex(); buf = SetupBuf(); - float col2[] = {0.1f, 0.1f, 0.5f, 1.0f}; + float col2[] = {0.0f, 0.0f, 1.0f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col2); glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_SHORT, NULL); - glBlitNamedFramebuffer(fbo, 0, 0, 0, 128, 128, 128, 0, 256, 128, GL_COLOR_BUFFER_BIT, - GL_NEAREST); + glBlitNamedFramebuffer(fbo, 0, 0, 0, 128, 128, 128, screenHeight - 128, 256, screenHeight, + GL_COLOR_BUFFER_BIT, GL_NEAREST); TrashFBO(fbo); TrashVAO(vao); TrashSampler(sampler); diff --git a/util/test/demos/gl/gl_runtime_bind_prog_to_pipe.cpp b/util/test/demos/gl/gl_runtime_bind_prog_to_pipe.cpp index b019c11aa..d7fa7db87 100644 --- a/util/test/demos/gl/gl_runtime_bind_prog_to_pipe.cpp +++ b/util/test/demos/gl/gl_runtime_bind_prog_to_pipe.cpp @@ -114,7 +114,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_separable_geometry_shader.cpp b/util/test/demos/gl/gl_separable_geometry_shader.cpp index ea6d0298e..c0b4d5a93 100644 --- a/util/test/demos/gl/gl_separable_geometry_shader.cpp +++ b/util/test/demos/gl/gl_separable_geometry_shader.cpp @@ -184,7 +184,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_shader_editing.cpp b/util/test/demos/gl/gl_shader_editing.cpp index 8134502c5..deda0e29f 100644 --- a/util/test/demos/gl/gl_shader_editing.cpp +++ b/util/test/demos/gl/gl_shader_editing.cpp @@ -177,7 +177,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_shader_isa.cpp b/util/test/demos/gl/gl_shader_isa.cpp index fffef31ac..e4780d8bd 100644 --- a/util/test/demos/gl/gl_shader_isa.cpp +++ b/util/test/demos/gl/gl_shader_isa.cpp @@ -105,7 +105,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glClearTexImage(tex, 0, GL_RGBA, GL_FLOAT, col); diff --git a/util/test/demos/gl/gl_simple_triangle.cpp b/util/test/demos/gl/gl_simple_triangle.cpp index aebb1289a..76569c90a 100644 --- a/util/test/demos/gl/gl_simple_triangle.cpp +++ b/util/test/demos/gl/gl_simple_triangle.cpp @@ -105,7 +105,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glClearTexImage(tex, 0, GL_RGBA, GL_FLOAT, col); diff --git a/util/test/demos/gl/gl_spirv_shader.cpp b/util/test/demos/gl/gl_spirv_shader.cpp index 4c5093541..e0b4d4dc1 100644 --- a/util/test/demos/gl/gl_spirv_shader.cpp +++ b/util/test/demos/gl/gl_spirv_shader.cpp @@ -224,7 +224,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); GLsizei w = GLsizei(screenWidth) >> 1; diff --git a/util/test/demos/gl/gl_structured_buffer_nested.cpp b/util/test/demos/gl/gl_structured_buffer_nested.cpp index b446f8cf0..aff9f099a 100644 --- a/util/test/demos/gl/gl_structured_buffer_nested.cpp +++ b/util/test/demos/gl/gl_structured_buffer_nested.cpp @@ -188,7 +188,7 @@ void main() glBindBuffer(GL_SHADER_STORAGE_BUFFER, outbuf); glClearBufferSubData(GL_SHADER_STORAGE_BUFFER, GL_RGBA32F, 0, 1024, GL_RGBA, GL_FLOAT, zeros); - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_texture_zoo.cpp b/util/test/demos/gl/gl_texture_zoo.cpp index 0a6026f93..31f6cd640 100644 --- a/util/test/demos/gl/gl_texture_zoo.cpp +++ b/util/test/demos/gl/gl_texture_zoo.cpp @@ -967,7 +967,7 @@ void main() { glBindFramebuffer(GL_FRAMEBUFFER, fbo); - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/gl/gl_unsized_ms_fbo_attachment.cpp b/util/test/demos/gl/gl_unsized_ms_fbo_attachment.cpp index 220653b31..de323e349 100644 --- a/util/test/demos/gl/gl_unsized_ms_fbo_attachment.cpp +++ b/util/test/demos/gl/gl_unsized_ms_fbo_attachment.cpp @@ -133,7 +133,7 @@ void main() GLenum bufs[] = {GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1}; glDrawBuffers(2, bufs); - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glClearBufferfi(GL_DEPTH_STENCIL, 0, 1.0f, 0); diff --git a/util/test/demos/gl/gl_vao_0.cpp b/util/test/demos/gl/gl_vao_0.cpp index 3ddd57569..7973359b2 100644 --- a/util/test/demos/gl/gl_vao_0.cpp +++ b/util/test/demos/gl/gl_vao_0.cpp @@ -104,7 +104,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); // try to delete VAO 0. Should do nothing diff --git a/util/test/demos/gl/gl_vertex_attr_zoo.cpp b/util/test/demos/gl/gl_vertex_attr_zoo.cpp index d540ae457..ac7a234c0 100644 --- a/util/test/demos/gl/gl_vertex_attr_zoo.cpp +++ b/util/test/demos/gl/gl_vertex_attr_zoo.cpp @@ -244,7 +244,7 @@ void main() while(Running()) { - float col[] = {0.4f, 0.5f, 0.6f, 1.0f}; + float col[] = {0.2f, 0.2f, 0.2f, 1.0f}; glClearBufferfv(GL_COLOR, 0, col); glBindVertexArray(vao); diff --git a/util/test/demos/test_common.cpp b/util/test/demos/test_common.cpp index 206e7f8a6..a2473aea8 100644 --- a/util/test/demos/test_common.cpp +++ b/util/test/demos/test_common.cpp @@ -28,9 +28,9 @@ #include const DefaultA2V DefaultTri[3] = { - {Vec3f(-0.5f, -0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.5f, -0.5f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, {Vec3f(0.0f, 0.5f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, - {Vec3f(0.5f, -0.5f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, + {Vec3f(0.5f, -0.5f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(1.0f, 0.0f)}, }; /* XPM */ diff --git a/util/test/demos/vk/vk_adv_cbuffer_zoo.cpp b/util/test/demos/vk/vk_adv_cbuffer_zoo.cpp index 92b1d4b37..949794ef5 100644 --- a/util/test/demos/vk/vk_adv_cbuffer_zoo.cpp +++ b/util/test/demos/vk/vk_adv_cbuffer_zoo.cpp @@ -373,7 +373,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_cbuffer_zoo.cpp b/util/test/demos/vk/vk_cbuffer_zoo.cpp index 14df68151..6b1556f9b 100644 --- a/util/test/demos/vk/vk_cbuffer_zoo.cpp +++ b/util/test/demos/vk/vk_cbuffer_zoo.cpp @@ -652,7 +652,7 @@ float4 main() : SV_Target0 StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdBeginRenderPass(cmd, vkh::RenderPassBeginInfo(renderPass, framebuffer, mainWindow->scissor, - {vkh::ClearValue(0.4f, 0.5f, 0.6f, 1.0f)}), + {vkh::ClearValue(0.2f, 0.2f, 0.2f, 1.0f)}), VK_SUBPASS_CONTENTS_INLINE); vkh::cmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, layout, 0, {descset}, {}); diff --git a/util/test/demos/vk/vk_descriptor_index.cpp b/util/test/demos/vk/vk_descriptor_index.cpp index 75cfd7d7d..63df268e0 100644 --- a/util/test/demos/vk/vk_descriptor_index.cpp +++ b/util/test/demos/vk/vk_descriptor_index.cpp @@ -537,7 +537,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, comppipe); diff --git a/util/test/demos/vk/vk_discard_rects.cpp b/util/test/demos/vk/vk_discard_rects.cpp index 49c394bf0..1cb6ba034 100644 --- a/util/test/demos/vk/vk_discard_rects.cpp +++ b/util/test/demos/vk/vk_discard_rects.cpp @@ -172,7 +172,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_draw_zoo.cpp b/util/test/demos/vk/vk_draw_zoo.cpp index e26ba8d9e..44593f8b3 100644 --- a/util/test/demos/vk/vk_draw_zoo.cpp +++ b/util/test/demos/vk/vk_draw_zoo.cpp @@ -315,7 +315,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_ext_buffer_address.cpp b/util/test/demos/vk/vk_ext_buffer_address.cpp index d4e603837..81109b33c 100644 --- a/util/test/demos/vk/vk_ext_buffer_address.cpp +++ b/util/test/demos/vk/vk_ext_buffer_address.cpp @@ -234,7 +234,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_image_layouts.cpp b/util/test/demos/vk/vk_image_layouts.cpp index b5857b7df..dfaaed776 100644 --- a/util/test/demos/vk/vk_image_layouts.cpp +++ b/util/test/demos/vk/vk_image_layouts.cpp @@ -186,7 +186,7 @@ void main() }); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); // the manual images are transitioned into general for copying, from pre-initialised and diff --git a/util/test/demos/vk/vk_imageless_framebuffer.cpp b/util/test/demos/vk/vk_imageless_framebuffer.cpp index ddacef1cd..acabf6ae2 100644 --- a/util/test/demos/vk/vk_imageless_framebuffer.cpp +++ b/util/test/demos/vk/vk_imageless_framebuffer.cpp @@ -177,7 +177,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); VkImageView curView = mainWindow->GetView(); diff --git a/util/test/demos/vk/vk_indirect.cpp b/util/test/demos/vk/vk_indirect.cpp index 2ca87c51d..6696d0840 100644 --- a/util/test/demos/vk/vk_indirect.cpp +++ b/util/test/demos/vk/vk_indirect.cpp @@ -195,42 +195,42 @@ void main() const DefaultA2V vbdata[24] = { // non-indexed indirect draw {Vec3f(-0.8f, 0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.7f, 0.8f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, - {Vec3f(-0.6f, 0.5f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, + {Vec3f(-0.7f, 0.8f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, + {Vec3f(-0.6f, 0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(1.0f, 0.0f)}, // non-indexed KHR_draw_indirect_count draw - {Vec3f(-0.8f, -0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.8f, -0.5f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, {Vec3f(-0.7f, -0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, - {Vec3f(-0.6f, -0.5f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, + {Vec3f(-0.6f, -0.5f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(1.0f, 0.0f)}, // indexed indirect draw 1 - {Vec3f(-0.6f, 0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.5f, 0.8f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, + {Vec3f(-0.6f, 0.5f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.5f, 0.8f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 1.0f)}, {Vec3f(-0.4f, 0.5f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, // indexed indirect draw 2 - {Vec3f(-0.4f, 0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.3f, 0.8f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, - {Vec3f(-0.2f, 0.8f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, - {Vec3f(-0.1f, 0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.0f, 0.8f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, - {Vec3f(0.1f, 0.8f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, + {Vec3f(-0.4f, 0.5f, 0.0f), Vec4f(1.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.3f, 0.8f, 0.0f), Vec4f(1.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, + {Vec3f(-0.2f, 0.8f, 0.0f), Vec4f(1.0f, 1.0f, 0.0f, 1.0f), Vec2f(1.0f, 0.0f)}, + {Vec3f(-0.1f, 0.5f, 0.0f), Vec4f(0.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.0f, 0.8f, 0.0f), Vec4f(0.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 1.0f)}, + {Vec3f(0.1f, 0.8f, 0.0f), Vec4f(0.0f, 1.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, // indexed KHR_draw_indirect_count draw 1 - {Vec3f(-0.6f, -0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.5f, -0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, - {Vec3f(-0.4f, -0.5f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, + {Vec3f(-0.6f, -0.5f, 0.0f), Vec4f(1.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.5f, -0.2f, 0.0f), Vec4f(1.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 1.0f)}, + {Vec3f(-0.4f, -0.5f, 0.0f), Vec4f(1.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, // indexed KHR_draw_indirect_count draw 2 // empty // indexed indirect draw 3 - {Vec3f(-0.4f, -0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.3f, -0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, - {Vec3f(-0.2f, -0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, - {Vec3f(-0.1f, -0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.0f, -0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, - {Vec3f(0.1f, -0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, + {Vec3f(-0.4f, -0.5f, 0.0f), Vec4f(0.5f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.3f, -0.2f, 0.0f), Vec4f(0.5f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, + {Vec3f(-0.2f, -0.2f, 0.0f), Vec4f(0.5f, 1.0f, 0.0f, 1.0f), Vec2f(1.0f, 0.0f)}, + {Vec3f(-0.1f, -0.5f, 0.0f), Vec4f(0.5f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.0f, -0.2f, 0.0f), Vec4f(0.5f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 1.0f)}, + {Vec3f(0.1f, -0.2f, 0.0f), Vec4f(0.5f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, }; AllocatedBuffer vb(this, @@ -281,7 +281,7 @@ void main() setMarker(primary, "Do Clear"); vkCmdClearColorImage(primary, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); { @@ -379,6 +379,8 @@ void main() } } + setMarker(primary, "Primary: Final"); + vkCmdEndRenderPass(primary); vkh::cmdPipelineBarrier( @@ -402,7 +404,7 @@ void main() vkBeginCommandBuffer(primary, vkh::CommandBufferBeginInfo()); vkCmdClearColorImage(primary, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); VkCommandBuffer dispatch_secondary = GetCommandBuffer(VK_COMMAND_BUFFER_LEVEL_SECONDARY); @@ -520,6 +522,8 @@ void main() vkCmdExecuteCommands(primary, 1, &draw_secondary); + setMarker(primary, "Secondary: Final"); + vkCmdEndRenderPass(primary); vkh::cmdPipelineBarrier( diff --git a/util/test/demos/vk/vk_int8_ibuffer.cpp b/util/test/demos/vk/vk_int8_ibuffer.cpp index 9deeb7b7f..d8703557e 100644 --- a/util/test/demos/vk/vk_int8_ibuffer.cpp +++ b/util/test/demos/vk/vk_int8_ibuffer.cpp @@ -109,23 +109,23 @@ void main() VkPipeline pipe = createGraphicsPipeline(pipeCreateInfo); DefaultA2V strip[] = { - {Vec3f(-0.8f, 0.2f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.8f, 0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, {Vec3f(-0.8f, 0.7f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.4f, 0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.4f, 0.7f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.4f, 0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.4f, 0.7f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, {Vec3f(0.0f, 0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.0f, 0.7f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.4f, 0.2f, 0.0f), Vec4f(1.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.4f, 0.7f, 0.0f), Vec4f(1.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.0f, 0.7f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.4f, 0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.4f, 0.7f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.8f, -0.7f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.8f, -0.2f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.8f, -0.7f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.8f, -0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, {Vec3f(-0.4f, -0.7f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.4f, -0.2f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.0f, -0.7f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.4f, -0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.0f, -0.7f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, {Vec3f(0.0f, -0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.4f, -0.7f, 0.0f), Vec4f(1.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.4f, -0.2f, 0.0f), Vec4f(1.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.4f, -0.7f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.4f, -0.2f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, }; AllocatedBuffer vb(this, @@ -162,7 +162,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_khr_buffer_address.cpp b/util/test/demos/vk/vk_khr_buffer_address.cpp index bf8035193..098b6c2d9 100644 --- a/util/test/demos/vk/vk_khr_buffer_address.cpp +++ b/util/test/demos/vk/vk_khr_buffer_address.cpp @@ -264,7 +264,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_line_raster.cpp b/util/test/demos/vk/vk_line_raster.cpp index 64bc5dcab..37927f213 100644 --- a/util/test/demos/vk/vk_line_raster.cpp +++ b/util/test/demos/vk/vk_line_raster.cpp @@ -219,7 +219,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_mesh_zoo.cpp b/util/test/demos/vk/vk_mesh_zoo.cpp index 2a26bd758..32bbaa6a1 100644 --- a/util/test/demos/vk/vk_mesh_zoo.cpp +++ b/util/test/demos/vk/vk_mesh_zoo.cpp @@ -209,7 +209,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_misaligned_dirty.cpp b/util/test/demos/vk/vk_misaligned_dirty.cpp index dee2da425..5ece54098 100644 --- a/util/test/demos/vk/vk_misaligned_dirty.cpp +++ b/util/test/demos/vk/vk_misaligned_dirty.cpp @@ -131,7 +131,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); VkBufferCopy region = {}; diff --git a/util/test/demos/vk/vk_multi_thread_windows.cpp b/util/test/demos/vk/vk_multi_thread_windows.cpp index 77cad0c8e..ff5809e1f 100644 --- a/util/test/demos/vk/vk_multi_thread_windows.cpp +++ b/util/test/demos/vk/vk_multi_thread_windows.cpp @@ -155,7 +155,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL, win); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass(cmd, vkh::RenderPassBeginInfo(win->rp, win->GetFB(), win->scissor), diff --git a/util/test/demos/vk/vk_overlay_test.cpp b/util/test/demos/vk/vk_overlay_test.cpp index cc560a9ec..7c3cd1065 100644 --- a/util/test/demos/vk/vk_overlay_test.cpp +++ b/util/test/demos/vk/vk_overlay_test.cpp @@ -266,7 +266,7 @@ void main() vkh::cmdBindVertexBuffers(cmd, 0, {vb.buffer}, {0}); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_parameter_zoo.cpp b/util/test/demos/vk/vk_parameter_zoo.cpp index f5e05238d..778082d10 100644 --- a/util/test/demos/vk/vk_parameter_zoo.cpp +++ b/util/test/demos/vk/vk_parameter_zoo.cpp @@ -915,7 +915,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkEndCommandBuffer(cmd); @@ -1100,7 +1100,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_resource_lifetimes.cpp b/util/test/demos/vk/vk_resource_lifetimes.cpp index b00f01529..105b64934 100644 --- a/util/test/demos/vk/vk_resource_lifetimes.cpp +++ b/util/test/demos/vk/vk_resource_lifetimes.cpp @@ -85,6 +85,7 @@ void main() } Color = texture(smiley, vertIn.uv.xy * 2.0f) * texture(checker, vertIn.uv.xy * 5.0f); + Color.w = 1.0f; } )EOSHADER"; @@ -202,13 +203,18 @@ void main() badcb.upload(&flags, sizeof(flags)); - VkSampler sampler = VK_NULL_HANDLE; + VkSampler checkersampler = VK_NULL_HANDLE; + VkSampler smileysampler = VK_NULL_HANDLE; VkSamplerCreateInfo sampInfo = {VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO}; - sampInfo.magFilter = VK_FILTER_LINEAR; - sampInfo.minFilter = VK_FILTER_LINEAR; + sampInfo.magFilter = VK_FILTER_NEAREST; + sampInfo.minFilter = VK_FILTER_NEAREST; - vkCreateSampler(device, &sampInfo, NULL, &sampler); + vkCreateSampler(device, &sampInfo, NULL, &checkersampler); + + sampInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + + vkCreateSampler(device, &sampInfo, NULL, &smileysampler); auto SetupBuffer = [this]() { VkBuffer cb = VK_NULL_HANDLE; @@ -378,35 +384,36 @@ void main() NULL, &descpool)); } - auto SetupDescSet = [this, setlayout, descpool, sampler, smileyview](VkBuffer cb, - VkImageView view) { + auto SetupDescSet = [this, setlayout, descpool, smileysampler, checkersampler, smileyview]( + VkBuffer cb, VkImageView view) { VkDescriptorSet descset = VK_NULL_HANDLE; vkAllocateDescriptorSets(device, vkh::DescriptorSetAllocateInfo(descpool, {setlayout}), &descset); vkh::updateDescriptorSets( - device, { - vkh::WriteDescriptorSet( - descset, 0, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - { - vkh::DescriptorImageInfo( - smileyview, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, sampler), - }), - vkh::WriteDescriptorSet( - descset, 1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - { - vkh::DescriptorImageInfo( - view, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, sampler), - }), - vkh::WriteDescriptorSet(descset, 2, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - {vkh::DescriptorBufferInfo(cb)}), - }); + device, + { + vkh::WriteDescriptorSet( + descset, 0, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + { + vkh::DescriptorImageInfo(smileyview, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + smileysampler), + }), + vkh::WriteDescriptorSet( + descset, 1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + { + vkh::DescriptorImageInfo(view, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + checkersampler), + }), + vkh::WriteDescriptorSet(descset, 2, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + {vkh::DescriptorBufferInfo(cb)}), + }); return descset; }; - auto TrashDescSet = [this, descpool, sampler, &badcb, badview](VkDescriptorSet descset) { + auto TrashDescSet = [this, descpool, checkersampler, &badcb, badview](VkDescriptorSet descset) { // update with bad data vkh::updateDescriptorSets( @@ -415,13 +422,13 @@ void main() descset, 0, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, { vkh::DescriptorImageInfo( - badview, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, sampler), + badview, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, checkersampler), }), vkh::WriteDescriptorSet( descset, 1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, { vkh::DescriptorImageInfo( - badview, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, sampler), + badview, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, checkersampler), }), vkh::WriteDescriptorSet(descset, 2, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, {vkh::DescriptorBufferInfo(badcb.buffer)}), @@ -450,7 +457,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkEndCommandBuffer(cmd); @@ -468,6 +475,11 @@ void main() cmd, vkh::RenderPassBeginInfo(mainWindow->rp, mainWindow->GetFB(), mainWindow->scissor), VK_SUBPASS_CONTENTS_INLINE); + VkClearAttachment att = {VK_IMAGE_ASPECT_COLOR_BIT, 0, + vkh::ClearValue(0.0f, 1.0f, 0.0f, 1.0f)}; + VkClearRect rect = {vkh::Rect2D({0, 0}, {128, 128}), 0, 1}; + vkCmdClearAttachments(cmd, 1, &att, 1, &rect); + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, pipe); vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, layout, 0, 1, &descset, 0, NULL); @@ -509,6 +521,11 @@ void main() cmd, vkh::RenderPassBeginInfo(mainWindow->rp, mainWindow->GetFB(), mainWindow->scissor), VK_SUBPASS_CONTENTS_INLINE); + VkClearAttachment att = {VK_IMAGE_ASPECT_COLOR_BIT, 0, + vkh::ClearValue(0.0f, 0.0f, 1.0f, 1.0f)}; + VkClearRect rect = {vkh::Rect2D({128, 0}, {128, 128}), 0, 1}; + vkCmdClearAttachments(cmd, 1, &att, 1, &rect); + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, pipe); vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, layout, 0, 1, &descset, 0, NULL); @@ -563,7 +580,8 @@ void main() TrashDescSet(descset); vkDestroyDescriptorPool(device, descpool, NULL); - vkDestroySampler(device, sampler, NULL); + vkDestroySampler(device, checkersampler, NULL); + vkDestroySampler(device, smileysampler, NULL); return 0; } diff --git a/util/test/demos/vk/vk_sample_locations.cpp b/util/test/demos/vk/vk_sample_locations.cpp index ce8cf3abb..abd56cdbb 100644 --- a/util/test/demos/vk/vk_sample_locations.cpp +++ b/util/test/demos/vk/vk_sample_locations.cpp @@ -179,7 +179,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkh::cmdPipelineBarrier( diff --git a/util/test/demos/vk/vk_secondary_cmdbuf.cpp b/util/test/demos/vk/vk_secondary_cmdbuf.cpp index 6532ec740..701c8399b 100644 --- a/util/test/demos/vk/vk_secondary_cmdbuf.cpp +++ b/util/test/demos/vk/vk_secondary_cmdbuf.cpp @@ -137,12 +137,12 @@ void main() setName(pipe1, "Pipeline 1"); const DefaultA2V TwoTris[] = { - {Vec3f(-0.75f, -0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(-0.25f, 0.5f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, - {Vec3f(0.25f, -0.5f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, + {Vec3f(-0.75f, -0.5f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(-0.5f, 0.5f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, + {Vec3f(-0.25f, -0.5f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(1.0f, 0.0f)}, - {Vec3f(-0.25f, -0.5f, 0.0f), Vec4f(1.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)}, - {Vec3f(0.25f, 0.5f, 0.0f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)}, + {Vec3f(0.25f, -0.5f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)}, + {Vec3f(0.5f, 0.5f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(0.0f, 1.0f)}, {Vec3f(0.75f, -0.5f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)}, }; @@ -180,11 +180,11 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass(cmd, vkh::RenderPassBeginInfo(renderPass, framebuffer, size, - {vkh::ClearValue(0.0f, 0.0f, 0.0f, 1.0f)}), + {vkh::ClearValue(0.2f, 0.2f, 0.2f, 1.0f)}), VK_SUBPASS_CONTENTS_INLINE); vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, pipe0); diff --git a/util/test/demos/vk/vk_shader_editing.cpp b/util/test/demos/vk/vk_shader_editing.cpp index c02759c1e..350dc8ed4 100644 --- a/util/test/demos/vk/vk_shader_editing.cpp +++ b/util/test/demos/vk/vk_shader_editing.cpp @@ -129,7 +129,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdBeginRenderPass(cmd, vkh::RenderPassBeginInfo(renderPass, framebuffer, mainWindow->scissor, - {vkh::ClearValue(0.4f, 0.5f, 0.6f, 1.0f)}), + {vkh::ClearValue(0.2f, 0.2f, 0.2f, 1.0f)}), VK_SUBPASS_CONTENTS_INLINE); VkViewport v = mainWindow->viewport; diff --git a/util/test/demos/vk/vk_shader_isa.cpp b/util/test/demos/vk/vk_shader_isa.cpp index d9a783d8d..45c523e97 100644 --- a/util/test/demos/vk/vk_shader_isa.cpp +++ b/util/test/demos/vk/vk_shader_isa.cpp @@ -121,7 +121,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkh::cmdPipelineBarrier( @@ -131,7 +131,7 @@ void main() }); vkCmdClearColorImage(cmd, offimg.image, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_simple_triangle.cpp b/util/test/demos/vk/vk_simple_triangle.cpp index be9554f7c..97fbb71d9 100644 --- a/util/test/demos/vk/vk_simple_triangle.cpp +++ b/util/test/demos/vk/vk_simple_triangle.cpp @@ -121,7 +121,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkh::cmdPipelineBarrier( @@ -131,7 +131,7 @@ void main() }); vkCmdClearColorImage(cmd, offimg.image, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_spec_constants.cpp b/util/test/demos/vk/vk_spec_constants.cpp index bb81c3f29..805709eeb 100644 --- a/util/test/demos/vk/vk_spec_constants.cpp +++ b/util/test/demos/vk/vk_spec_constants.cpp @@ -146,7 +146,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_spirv_13_shaders.cpp b/util/test/demos/vk/vk_spirv_13_shaders.cpp index 1a5bbbe02..97910331d 100644 --- a/util/test/demos/vk/vk_spirv_13_shaders.cpp +++ b/util/test/demos/vk/vk_spirv_13_shaders.cpp @@ -110,7 +110,7 @@ void fragmain(in float4 incol : COL, out float4 ocol : SV_Target0) StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_structured_buffer_nested.cpp b/util/test/demos/vk/vk_structured_buffer_nested.cpp index 7de945314..5f6c75fd2 100644 --- a/util/test/demos/vk/vk_structured_buffer_nested.cpp +++ b/util/test/demos/vk/vk_structured_buffer_nested.cpp @@ -277,7 +277,7 @@ float4 main() : SV_Target0 StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkh::cmdPipelineBarrier( diff --git a/util/test/demos/vk/vk_texture_zoo.cpp b/util/test/demos/vk/vk_texture_zoo.cpp index 5fbd70e1b..92a2fd451 100644 --- a/util/test/demos/vk/vk_texture_zoo.cpp +++ b/util/test/demos/vk/vk_texture_zoo.cpp @@ -1417,7 +1417,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdBeginRenderPass(cmd, vkh::RenderPassBeginInfo(rp, framebuffer, mainWindow->scissor, - {vkh::ClearValue(0.4f, 0.5f, 0.6f, 1.0f)}), + {vkh::ClearValue(0.2f, 0.2f, 0.2f, 1.0f)}), VK_SUBPASS_CONTENTS_INLINE); VkViewport view = {0.0f, 0.0f, 10.0f, 10.0f, 0.0f, 1.0f}; diff --git a/util/test/demos/vk/vk_triangle_fan.cpp b/util/test/demos/vk/vk_triangle_fan.cpp index d0da412dd..a0978e4bc 100644 --- a/util/test/demos/vk/vk_triangle_fan.cpp +++ b/util/test/demos/vk/vk_triangle_fan.cpp @@ -153,7 +153,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_truncated_cbuffer.cpp b/util/test/demos/vk/vk_truncated_cbuffer.cpp index 210a4b037..abc97f816 100644 --- a/util/test/demos/vk/vk_truncated_cbuffer.cpp +++ b/util/test/demos/vk/vk_truncated_cbuffer.cpp @@ -154,7 +154,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_vertex_attr_zoo.cpp b/util/test/demos/vk/vk_vertex_attr_zoo.cpp index 8bebe230a..c31921c64 100644 --- a/util/test/demos/vk/vk_vertex_attr_zoo.cpp +++ b/util/test/demos/vk/vk_vertex_attr_zoo.cpp @@ -393,7 +393,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_video_textures.cpp b/util/test/demos/vk/vk_video_textures.cpp index ea3baf7c4..a04201af2 100644 --- a/util/test/demos/vk/vk_video_textures.cpp +++ b/util/test/demos/vk/vk_video_textures.cpp @@ -911,7 +911,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/demos/vk/vk_vs_max_desc_set.cpp b/util/test/demos/vk/vk_vs_max_desc_set.cpp index 4afc2f0c6..44793ce91 100644 --- a/util/test/demos/vk/vk_vs_max_desc_set.cpp +++ b/util/test/demos/vk/vk_vs_max_desc_set.cpp @@ -229,7 +229,7 @@ void main() StartUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL); vkCmdClearColorImage(cmd, swapimg, VK_IMAGE_LAYOUT_GENERAL, - vkh::ClearColorValue(0.4f, 0.5f, 0.6f, 1.0f), 1, + vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1, vkh::ImageSubresourceRange()); vkCmdBeginRenderPass( diff --git a/util/test/rdtest/testcase.py b/util/test/rdtest/testcase.py index 8908bb2d6..c6bdde628 100644 --- a/util/test/rdtest/testcase.py +++ b/util/test/rdtest/testcase.py @@ -308,11 +308,28 @@ class TestCase: if type(y) is float: y = int((tex_details.height-1) * y) - picked: rd.PixelValue = self.controller.PickPixel(tex, x, y, rd.Subresource(0, 0, 0), rd.CompType.Typeless) + cast = rd.CompType.Typeless + if tex_details.creationFlags & rd.TextureCategory.SwapBuffer: + cast = rd.CompType.UNormSRGB + + # Reduce epsilon for RGBA8 textures if it's not already reduced + if tex_details.format.compByteWidth == 1 and eps == util.FLT_EPSILON: + eps = (1.0 / 255.0) + + picked: rd.PixelValue = self.controller.PickPixel(tex, x, y, rd.Subresource(0, 0, 0), cast) if not util.value_compare(picked.floatValue, value, eps): + save_data = rd.TextureSave() + save_data.resourceId = tex + save_data.destType = rd.FileType.PNG + + img_path = util.get_tmp_path('output.png') + + self.controller.SaveTexture(save_data, img_path) + raise TestFailureException( - "Picked value {} at {},{} doesn't match expectation of {}".format(picked.floatValue, x, y, value)) + "Picked value {} at {},{} doesn't match expectation of {}".format(picked.floatValue, x, y, value), + img_path) log.success("Picked value at {},{} in {} is as expected".format(x, y, res_details.name)) @@ -331,17 +348,17 @@ class TestCase: if fore is None: fore = [0.0, 1.0, 0.0, 1.0] if vp is None: - vp = (float(tex_details.width), float(tex_details.height), 0.0, 0.0) + vp = (0.0, 0.0, float(tex_details.width), float(tex_details.height)) - self.check_pixel_value(out, int(0.5*vp[0]+vp[2]), int(0.5*vp[1]+vp[3]), fore) - self.check_pixel_value(out, int(0.5*vp[0]+vp[2]), int(0.3*vp[1]+vp[3]), fore) - self.check_pixel_value(out, int(0.3*vp[0]+vp[2]), int(0.7*vp[1]+vp[3]), fore) - self.check_pixel_value(out, int(0.7*vp[0]+vp[2]), int(0.7*vp[1]+vp[3]), fore) + self.check_pixel_value(out, int(0.5*vp[2]+vp[0]), int(0.5*vp[3]+vp[1]), fore) + self.check_pixel_value(out, int(0.5*vp[2]+vp[0]), int(0.3*vp[3]+vp[1]), fore) + self.check_pixel_value(out, int(0.3*vp[2]+vp[0]), int(0.7*vp[3]+vp[1]), fore) + self.check_pixel_value(out, int(0.7*vp[2]+vp[0]), int(0.7*vp[3]+vp[1]), fore) - self.check_pixel_value(out, int(0.3*vp[0]+vp[2]), int(0.5*vp[1]+vp[3]), back) - self.check_pixel_value(out, int(0.7*vp[0]+vp[2]), int(0.5*vp[1]+vp[3]), back) - self.check_pixel_value(out, int(0.5*vp[0]+vp[2]), int(0.8*vp[1]+vp[3]), back) - self.check_pixel_value(out, int(0.5*vp[0]+vp[2]), int(0.2*vp[1]+vp[3]), back) + self.check_pixel_value(out, int(0.3*vp[2]+vp[0]), int(0.5*vp[3]+vp[1]), back) + self.check_pixel_value(out, int(0.7*vp[2]+vp[0]), int(0.5*vp[3]+vp[1]), back) + self.check_pixel_value(out, int(0.5*vp[2]+vp[0]), int(0.8*vp[3]+vp[1]), back) + self.check_pixel_value(out, int(0.5*vp[2]+vp[0]), int(0.2*vp[3]+vp[1]), back) log.success("Simple triangle is as expected") diff --git a/util/test/tests/D3D11/D3D11_Overlay_Test.py b/util/test/tests/D3D11/D3D11_Overlay_Test.py index 797e8a212..a9e8f194e 100644 --- a/util/test/tests/D3D11/D3D11_Overlay_Test.py +++ b/util/test/tests/D3D11/D3D11_Overlay_Test.py @@ -35,8 +35,6 @@ class D3D11_Overlay_Test(rdtest.TestCase): rdtest.log.success("Reference and output image are identical for {}".format(test_name)) def check_capture(self): - self.check_final_backbuffer() - out: rd.ReplayOutput = self.controller.CreateOutput(rd.CreateHeadlessWindowingData(100, 100), rd.ReplayOutputType.Texture) self.check(out is not None) @@ -50,6 +48,34 @@ class D3D11_Overlay_Test(rdtest.TestCase): tex = rd.TextureDisplay() tex.resourceId = pipe.GetOutputTargets()[0].resourceId + # Check the actual output is as expected first. + + # Background around the outside + self.check_pixel_value(tex.resourceId, 0.1, 0.1, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex.resourceId, 0.8, 0.1, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex.resourceId, 0.5, 0.95, [0.2, 0.2, 0.2, 1.0]) + + # Large dark grey triangle + self.check_pixel_value(tex.resourceId, 0.5, 0.1, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.5, 0.9, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.2, 0.9, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.8, 0.9, [0.1, 0.1, 0.1, 1.0]) + + # Red upper half triangle + self.check_pixel_value(tex.resourceId, 0.3, 0.4, [1.0, 0.0, 0.0, 1.0]) + # Blue lower half triangle + self.check_pixel_value(tex.resourceId, 0.3, 0.6, [0.0, 0.0, 1.0, 1.0]) + + # Floating clipped triangle + self.check_pixel_value(tex.resourceId, 335, 140, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex.resourceId, 340, 140, [0.2, 0.2, 0.2, 1.0]) + + # Triangle size triangles + self.check_pixel_value(tex.resourceId, 200, 51, [1.0, 0.5, 1.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 65, [1.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 79, [0.0, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 93, [0.0, 1.0, 0.0, 1.0]) + for overlay in rd.DebugOverlay: if overlay == rd.DebugOverlay.NoOverlay: continue diff --git a/util/test/tests/D3D11/D3D11_Primitive_Restart.py b/util/test/tests/D3D11/D3D11_Primitive_Restart.py index f5c680e0f..d99d5a13b 100644 --- a/util/test/tests/D3D11/D3D11_Primitive_Restart.py +++ b/util/test/tests/D3D11/D3D11_Primitive_Restart.py @@ -6,8 +6,6 @@ class D3D11_Primitive_Restart(rdtest.TestCase): demos_test_name = 'D3D11_Primitive_Restart' def check_capture(self): - self.check_final_backbuffer() - draw = self.find_draw("Draw") self.check(draw is not None) @@ -27,7 +25,7 @@ class D3D11_Primitive_Restart(rdtest.TestCase): 'vtx': 0, 'idx': 0, 'SV_POSITION': [-0.8, 0.2, 0.0, 1.0], - 'COLOR': [1.0, 0.0, 0.0, 1.0], + 'COLOR': [0.0, 1.0, 0.0, 1.0], 'TEXCOORD': [0.0, 0.0], }, 4: { @@ -44,7 +42,7 @@ class D3D11_Primitive_Restart(rdtest.TestCase): 'vtx': 9, 'idx': 8, 'SV_POSITION': [-0.8, -0.7, 0.0, 1.0], - 'COLOR': [1.0, 0.0, 0.0, 1.0], + 'COLOR': [0.0, 0.0, 1.0, 1.0], 'TEXCOORD': [0.0, 0.0], }, } @@ -63,3 +61,17 @@ class D3D11_Primitive_Restart(rdtest.TestCase): # Data should be identical self.check_mesh_data(postvs_ref, postvs_data) + + # Check that the rendered mesh is as expected + out = pipe.GetOutputTargets()[0].resourceId + for x in [x*0.01 for x in range(1, 100)]: + self.check_pixel_value(out, x, 0.1, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(out, x, 0.5, [0.2, 0.2, 0.2, 1.0]) + + self.check_pixel_value(out, 0.3, 0.25, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(out, 0.5, 0.25, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(out, 0.7, 0.25, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(out, 0.3, 0.75, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(out, 0.5, 0.75, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(out, 0.7, 0.75, [0.0, 0.0, 1.0, 1.0]) + diff --git a/util/test/tests/D3D11/D3D11_Resource_Lifetimes.py b/util/test/tests/D3D11/D3D11_Resource_Lifetimes.py index 8d4b0de2a..5e017dd81 100644 --- a/util/test/tests/D3D11/D3D11_Resource_Lifetimes.py +++ b/util/test/tests/D3D11/D3D11_Resource_Lifetimes.py @@ -7,7 +7,50 @@ class D3D11_Resource_Lifetimes(rdtest.TestCase): demos_frame_cap = 200 def check_capture(self): - self.check_final_backbuffer() + last_draw: rd.DrawcallDescription = self.get_last_draw() + + self.controller.SetFrameEvent(last_draw.eventId, True) + + tex = last_draw.copyDestination + + # green background around first triangle, blue around second + self.check_pixel_value(tex, 10, 10, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 118, 10, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 118, 118, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 10, 118, [0.0, 1.0, 0.0, 1.0]) + + self.check_pixel_value(tex, 138, 10, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 246, 10, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 246, 118, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 138, 118, [0.0, 0.0, 1.0, 1.0]) + + # Sample across each triangle, we expect things to be identical + for xoffs in [0, 128]: + # Check black checkerboard squares + self.check_pixel_value(tex, xoffs+42, 92, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+40, 85, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+68, 66, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+59, 47, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+81, 92, [0.0, 0.0, 0.0, 1.0]) + + # Check the red and green eyes of the smiley + self.check_pixel_value(tex, xoffs+49, 83, [1.0, 0.0, 0.09, 1.0]) + self.check_pixel_value(tex, xoffs+60, 83, [0.0, 1.0, 0.09, 1.0]) + + # Check the blue smile + self.check_pixel_value(tex, xoffs+64, 72, [0.09, 0.0, 1.0, 1.0]) + + # Check the orange face + self.check_pixel_value(tex, xoffs+46, 86, [1.0, 0.55, 0.36, 1.0]) + + # Check the empty space where we clamped and didn't repeat + self.check_pixel_value(tex, xoffs+82, 79, [0.72, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex, xoffs+84, 86, [0.72, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex, xoffs+88, 92, [0.72, 1.0, 1.0, 1.0]) + + # Check that the repeated smiley above is there + self.check_pixel_value(tex, xoffs+67, 53, [0.91, 0.636, 0.36, 1.0]) + self.check_pixel_value(tex, xoffs+65, 50, [1.0, 0.0, 0.09, 1.0]) # Check for resource leaks if len(self.controller.GetResources()) > 75: diff --git a/util/test/tests/D3D11/D3D11_Shader_Editing.py b/util/test/tests/D3D11/D3D11_Shader_Editing.py index 156872cd5..5b1f0e948 100644 --- a/util/test/tests/D3D11/D3D11_Shader_Editing.py +++ b/util/test/tests/D3D11/D3D11_Shader_Editing.py @@ -110,8 +110,8 @@ class D3D11_Shader_Editing(rdtest.TestCase): self.controller.SetFrameEvent(eid, True) # Original sample positions are now the clear color - self.check_pixel_value(tex, 0.25, 0.5, [0.4, 0.5, 0.6, 1.0]) - self.check_pixel_value(tex, 0.75, 0.5, [0.4, 0.5, 0.6, 1.0]) + self.check_pixel_value(tex, 0.25, 0.5, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex, 0.75, 0.5, [0.2, 0.2, 0.2, 1.0]) # Triangles have green and blue channel self.check_pixel_value(tex, 0.45, 0.05, [0.0, 1.0, 1.0, 1.0]) @@ -124,8 +124,8 @@ class D3D11_Shader_Editing(rdtest.TestCase): self.controller.SetFrameEvent(eid, True) # Original sample positions are still the clear color - self.check_pixel_value(tex, 0.25, 0.5, [0.4, 0.5, 0.6, 1.0]) - self.check_pixel_value(tex, 0.75, 0.5, [0.4, 0.5, 0.6, 1.0]) + self.check_pixel_value(tex, 0.25, 0.5, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex, 0.75, 0.5, [0.2, 0.2, 0.2, 1.0]) # The right triangle is the edited colour, the other two have reverted to green channel only self.check_pixel_value(tex, 0.45, 0.05, [0.0, 1.0, 0.0, 1.0]) diff --git a/util/test/tests/D3D11/D3D11_Simple_Triangle.py b/util/test/tests/D3D11/D3D11_Simple_Triangle.py index d777db434..c6a336d9f 100644 --- a/util/test/tests/D3D11/D3D11_Simple_Triangle.py +++ b/util/test/tests/D3D11/D3D11_Simple_Triangle.py @@ -6,7 +6,11 @@ class D3D11_Simple_Triangle(rdtest.TestCase): demos_test_name = 'D3D11_Simple_Triangle' def check_capture(self): - self.check_final_backbuffer() + last_draw: rd.DrawcallDescription = self.get_last_draw() + + self.controller.SetFrameEvent(last_draw.eventId, True) + + self.check_triangle(out=last_draw.copyDestination) self.check_export(self.capture_filename) @@ -21,7 +25,7 @@ class D3D11_Simple_Triangle(rdtest.TestCase): 'vtx': 0, 'idx': 0, 'SV_POSITION': [-0.5, -0.5, 0.0, 1.0], - 'COLOR': [1.0, 0.0, 0.0, 1.0], + 'COLOR': [0.0, 1.0, 0.0, 1.0], 'TEXCOORD': [0.0, 0.0], }, 1: { @@ -35,7 +39,7 @@ class D3D11_Simple_Triangle(rdtest.TestCase): 'vtx': 2, 'idx': 2, 'SV_POSITION': [0.5, -0.5, 0.0, 1.0], - 'COLOR': [0.0, 0.0, 1.0, 1.0], + 'COLOR': [0.0, 1.0, 0.0, 1.0], 'TEXCOORD': [1.0, 0.0], }, } diff --git a/util/test/tests/D3D12/D3D12_Execute_Indirect.py b/util/test/tests/D3D12/D3D12_Execute_Indirect.py index 3d9f606ca..6212df069 100644 --- a/util/test/tests/D3D12/D3D12_Execute_Indirect.py +++ b/util/test/tests/D3D12/D3D12_Execute_Indirect.py @@ -10,17 +10,5 @@ class D3D12_Execute_Indirect(rdtest.TestCase): self.controller.SetFrameEvent(draw.eventId, False) - pipe: rd.PipeState = self.controller.GetPipelineState() - - # Should be a green triangle in the centre of the screen - self.check_pixel_value(pipe.GetOutputTargets()[0].resourceId, 0.5, 0.5, [0.0, 1.0, 0.0, 1.0]) - self.check_pixel_value(pipe.GetOutputTargets()[0].resourceId, 0.5, 0.3, [0.0, 1.0, 0.0, 1.0]) - self.check_pixel_value(pipe.GetOutputTargets()[0].resourceId, 0.3, 0.7, [0.0, 1.0, 0.0, 1.0]) - self.check_pixel_value(pipe.GetOutputTargets()[0].resourceId, 0.7, 0.7, [0.0, 1.0, 0.0, 1.0]) - - self.check_pixel_value(pipe.GetOutputTargets()[0].resourceId, 0.3, 0.5, [1.0, 0.0, 0.0, 1.0]) - self.check_pixel_value(pipe.GetOutputTargets()[0].resourceId, 0.7, 0.5, [1.0, 0.0, 0.0, 1.0]) - self.check_pixel_value(pipe.GetOutputTargets()[0].resourceId, 0.5, 0.8, [1.0, 0.0, 0.0, 1.0]) - self.check_pixel_value(pipe.GetOutputTargets()[0].resourceId, 0.5, 0.2, [1.0, 0.0, 0.0, 1.0]) - - rdtest.log.success("Picked values are as expected") \ No newline at end of file + # Should be a green triangle in the centre of the screen on a red background + self.check_triangle(back=[1.0, 0.0, 0.0, 1.0]) \ No newline at end of file diff --git a/util/test/tests/D3D12/D3D12_Overlay_Test.py b/util/test/tests/D3D12/D3D12_Overlay_Test.py index 4a32df050..0ef3c05f3 100644 --- a/util/test/tests/D3D12/D3D12_Overlay_Test.py +++ b/util/test/tests/D3D12/D3D12_Overlay_Test.py @@ -35,8 +35,6 @@ class D3D12_Overlay_Test(rdtest.TestCase): rdtest.log.success("Reference and output image are identical for {}".format(test_name)) def check_capture(self): - self.check_final_backbuffer() - out: rd.ReplayOutput = self.controller.CreateOutput(rd.CreateHeadlessWindowingData(100, 100), rd.ReplayOutputType.Texture) self.check(out is not None) @@ -50,6 +48,34 @@ class D3D12_Overlay_Test(rdtest.TestCase): tex = rd.TextureDisplay() tex.resourceId = pipe.GetOutputTargets()[0].resourceId + # Check the actual output is as expected first. + + # Background around the outside + self.check_pixel_value(tex.resourceId, 0.1, 0.1, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex.resourceId, 0.8, 0.1, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex.resourceId, 0.5, 0.95, [0.2, 0.2, 0.2, 1.0]) + + # Large dark grey triangle + self.check_pixel_value(tex.resourceId, 0.5, 0.1, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.5, 0.9, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.2, 0.9, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.8, 0.9, [0.1, 0.1, 0.1, 1.0]) + + # Red upper half triangle + self.check_pixel_value(tex.resourceId, 0.3, 0.4, [1.0, 0.0, 0.0, 1.0]) + # Blue lower half triangle + self.check_pixel_value(tex.resourceId, 0.3, 0.6, [0.0, 0.0, 1.0, 1.0]) + + # Floating clipped triangle + self.check_pixel_value(tex.resourceId, 335, 140, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex.resourceId, 340, 140, [0.2, 0.2, 0.2, 1.0]) + + # Triangle size triangles + self.check_pixel_value(tex.resourceId, 200, 51, [1.0, 0.5, 1.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 65, [1.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 79, [0.0, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 93, [0.0, 1.0, 0.0, 1.0]) + for overlay in rd.DebugOverlay: if overlay == rd.DebugOverlay.NoOverlay: continue @@ -71,6 +97,7 @@ class D3D12_Overlay_Test(rdtest.TestCase): save_data = rd.TextureSave() save_data.resourceId = out.GetDebugOverlayTexID() save_data.destType = rd.FileType.PNG + save_data.typeCast = rd.CompType.Typeless save_data.comp.blackPoint = 0.0 save_data.comp.whitePoint = 1.0 @@ -85,6 +112,7 @@ class D3D12_Overlay_Test(rdtest.TestCase): # These overlays modify the underlying texture, so we need to save it out instead of the overlay if overlay == rd.DebugOverlay.ClearBeforeDraw or overlay == rd.DebugOverlay.ClearBeforePass: save_data.resourceId = tex.resourceId + save_data.typeCast = rd.CompType.UNormSRGB self.controller.SaveTexture(save_data, overlay_path) diff --git a/util/test/tests/D3D12/D3D12_Resource_Lifetimes.py b/util/test/tests/D3D12/D3D12_Resource_Lifetimes.py index dba07d4ff..89f0ff45e 100644 --- a/util/test/tests/D3D12/D3D12_Resource_Lifetimes.py +++ b/util/test/tests/D3D12/D3D12_Resource_Lifetimes.py @@ -7,7 +7,50 @@ class D3D12_Resource_Lifetimes(rdtest.TestCase): demos_frame_cap = 200 def check_capture(self): - self.check_final_backbuffer() + last_draw: rd.DrawcallDescription = self.get_last_draw() + + self.controller.SetFrameEvent(last_draw.eventId, True) + + tex = last_draw.copyDestination + + # green background around first triangle, blue around second + self.check_pixel_value(tex, 10, 10, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 118, 10, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 118, 118, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 10, 118, [0.0, 1.0, 0.0, 1.0]) + + self.check_pixel_value(tex, 138, 10, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 246, 10, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 246, 118, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 138, 118, [0.0, 0.0, 1.0, 1.0]) + + # Sample across each triangle, we expect things to be identical + for xoffs in [0, 128]: + # Check black checkerboard squares + self.check_pixel_value(tex, xoffs+42, 92, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+40, 85, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+68, 66, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+59, 47, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+81, 92, [0.0, 0.0, 0.0, 1.0]) + + # Check the red and green eyes of the smiley + self.check_pixel_value(tex, xoffs+49, 83, [1.0, 0.0, 0.09, 1.0]) + self.check_pixel_value(tex, xoffs+60, 83, [0.0, 1.0, 0.09, 1.0]) + + # Check the blue smile + self.check_pixel_value(tex, xoffs+64, 72, [0.09, 0.0, 1.0, 1.0]) + + # Check the orange face + self.check_pixel_value(tex, xoffs+46, 86, [1.0, 0.55, 0.36, 1.0]) + + # Check the empty space where we clamped and didn't repeat + self.check_pixel_value(tex, xoffs+82, 79, [0.72, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex, xoffs+84, 86, [0.72, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex, xoffs+88, 92, [0.72, 1.0, 1.0, 1.0]) + + # Check that the repeated smiley above is there + self.check_pixel_value(tex, xoffs+67, 53, [0.91, 0.636, 0.36, 1.0]) + self.check_pixel_value(tex, xoffs+65, 50, [1.0, 0.0, 0.09, 1.0]) # Check for resource leaks if len(self.controller.GetResources()) > 75: diff --git a/util/test/tests/D3D12/D3D12_Shader_Editing.py b/util/test/tests/D3D12/D3D12_Shader_Editing.py index 1c20acf5d..bab2c430e 100644 --- a/util/test/tests/D3D12/D3D12_Shader_Editing.py +++ b/util/test/tests/D3D12/D3D12_Shader_Editing.py @@ -112,8 +112,8 @@ class D3D12_Shader_Editing(rdtest.TestCase): self.controller.SetFrameEvent(eid, True) # Original sample positions are now the clear color - self.check_pixel_value(tex, 0.25, 0.5, [0.4, 0.5, 0.6, 1.0]) - self.check_pixel_value(tex, 0.75, 0.5, [0.4, 0.5, 0.6, 1.0]) + self.check_pixel_value(tex, 0.25, 0.5, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex, 0.75, 0.5, [0.2, 0.2, 0.2, 1.0]) # Triangles have green and blue channel self.check_pixel_value(tex, 0.45, 0.05, [0.0, 1.0, 1.0, 1.0]) @@ -126,8 +126,8 @@ class D3D12_Shader_Editing(rdtest.TestCase): self.controller.SetFrameEvent(eid, True) # Original sample positions are still the clear color - self.check_pixel_value(tex, 0.25, 0.5, [0.4, 0.5, 0.6, 1.0]) - self.check_pixel_value(tex, 0.75, 0.5, [0.4, 0.5, 0.6, 1.0]) + self.check_pixel_value(tex, 0.25, 0.5, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex, 0.75, 0.5, [0.2, 0.2, 0.2, 1.0]) # The right triangle is the edited colour, the other two have reverted to green channel only self.check_pixel_value(tex, 0.45, 0.05, [0.0, 1.0, 0.0, 1.0]) diff --git a/util/test/tests/D3D12/D3D12_Simple_Triangle.py b/util/test/tests/D3D12/D3D12_Simple_Triangle.py index 3f520ba04..85d8d5869 100644 --- a/util/test/tests/D3D12/D3D12_Simple_Triangle.py +++ b/util/test/tests/D3D12/D3D12_Simple_Triangle.py @@ -6,7 +6,11 @@ class D3D12_Simple_Triangle(rdtest.TestCase): demos_test_name = 'D3D12_Simple_Triangle' def check_capture(self): - self.check_final_backbuffer() + last_draw: rd.DrawcallDescription = self.get_last_draw() + + self.controller.SetFrameEvent(last_draw.eventId, True) + + self.check_triangle(out=last_draw.copyDestination) self.check_export(self.capture_filename) @@ -21,7 +25,7 @@ class D3D12_Simple_Triangle(rdtest.TestCase): 'vtx': 0, 'idx': 0, 'SV_POSITION': [-0.5, -0.5, 0.0, 1.0], - 'COLOR': [1.0, 0.0, 0.0, 1.0], + 'COLOR': [0.0, 1.0, 0.0, 1.0], 'TEXCOORD': [0.0, 0.0], }, 1: { @@ -35,7 +39,7 @@ class D3D12_Simple_Triangle(rdtest.TestCase): 'vtx': 2, 'idx': 2, 'SV_POSITION': [0.5, -0.5, 0.0, 1.0], - 'COLOR': [0.0, 0.0, 1.0, 1.0], + 'COLOR': [0.0, 1.0, 0.0, 1.0], 'TEXCOORD': [1.0, 0.0], }, } diff --git a/util/test/tests/GL/GL_DX_Interop.py b/util/test/tests/GL/GL_DX_Interop.py index 8331eb61b..8496e2615 100644 --- a/util/test/tests/GL/GL_DX_Interop.py +++ b/util/test/tests/GL/GL_DX_Interop.py @@ -1,10 +1,35 @@ +import renderdoc as rd import rdtest class GL_DX_Interop(rdtest.TestCase): demos_test_name = 'GL_DX_Interop' - demos_frame_cap = 7 + demos_frame_cap = 4 def check_capture(self): - self.check_final_backbuffer() + last_draw: rd.DrawcallDescription = self.get_last_draw() + self.controller.SetFrameEvent(last_draw.eventId, True) + + out = last_draw.copyDestination + + # There should be N+1 rings of green/red with the base colour in the middle + x,y = 1.0, 1.0 + for ring in range(self.demos_frame_cap+1): + self.check_pixel_value(out, (0.5 - 0.5 * x) + 0.01, (0.5 - 0.5 * y) + 0.01, [1.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(out, (0.5 - 0.5 * x) + 0.01, (0.5 + 0.5 * y) - 0.01, [1.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(out, (0.5 + 0.5 * x) - 0.01, (0.5 - 0.5 * y) + 0.01, [1.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(out, (0.5 + 0.5 * x) - 0.01, (0.5 + 0.5 * y) - 0.01, [1.0, 0.0, 0.0, 1.0]) + + x *= 0.8 + y *= 0.8 + + self.check_pixel_value(out, (0.5 - 0.5 * x) + 0.01, (0.5 - 0.5 * y) + 0.01, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(out, (0.5 - 0.5 * x) + 0.01, (0.5 + 0.5 * y) - 0.01, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(out, (0.5 + 0.5 * x) - 0.01, (0.5 - 0.5 * y) + 0.01, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(out, (0.5 + 0.5 * x) - 0.01, (0.5 + 0.5 * y) - 0.01, [0.0, 1.0, 0.0, 1.0]) + + x *= 0.8 + y *= 0.8 + + self.check_pixel_value(out, 0.5, 0.5, [0.2, 0.2, 0.2, 1.0]) diff --git a/util/test/tests/GL/GL_Overlay_Test.py b/util/test/tests/GL/GL_Overlay_Test.py index f82174510..de3582877 100644 --- a/util/test/tests/GL/GL_Overlay_Test.py +++ b/util/test/tests/GL/GL_Overlay_Test.py @@ -35,8 +35,6 @@ class GL_Overlay_Test(rdtest.TestCase): rdtest.log.success("Reference and output image are identical for {}".format(test_name)) def check_capture(self): - self.check_final_backbuffer() - out: rd.ReplayOutput = self.controller.CreateOutput(rd.CreateHeadlessWindowingData(100, 100), rd.ReplayOutputType.Texture) self.check(out is not None) @@ -50,6 +48,34 @@ class GL_Overlay_Test(rdtest.TestCase): tex = rd.TextureDisplay() tex.resourceId = pipe.GetOutputTargets()[0].resourceId + # Check the actual output is as expected first. + + # Background around the outside + self.check_pixel_value(tex.resourceId, 0.1, 0.1, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex.resourceId, 0.8, 0.1, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex.resourceId, 0.5, 0.95, [0.2, 0.2, 0.2, 1.0]) + + # Large dark grey triangle + self.check_pixel_value(tex.resourceId, 0.5, 0.1, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.5, 0.9, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.2, 0.9, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.8, 0.9, [0.1, 0.1, 0.1, 1.0]) + + # Red upper half triangle + self.check_pixel_value(tex.resourceId, 0.3, 0.4, [1.0, 0.0, 0.0, 1.0]) + # Blue lower half triangle + self.check_pixel_value(tex.resourceId, 0.3, 0.6, [0.0, 0.0, 1.0, 1.0]) + + # Floating clipped triangle + self.check_pixel_value(tex.resourceId, 335, 140, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex.resourceId, 340, 140, [0.2, 0.2, 0.2, 1.0]) + + # Triangle size triangles + self.check_pixel_value(tex.resourceId, 200, 51, [1.0, 0.5, 1.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 65, [1.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 79, [0.0, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 93, [0.0, 1.0, 0.0, 1.0]) + for overlay in rd.DebugOverlay: if overlay == rd.DebugOverlay.NoOverlay: continue diff --git a/util/test/tests/GL/GL_Parameter_Zoo.py b/util/test/tests/GL/GL_Parameter_Zoo.py index f60d4e301..e3333a4f8 100644 --- a/util/test/tests/GL/GL_Parameter_Zoo.py +++ b/util/test/tests/GL/GL_Parameter_Zoo.py @@ -60,7 +60,7 @@ class GL_Parameter_Zoo(rdtest.TestCase): 'vtx': 0, 'idx': 0, 'gl_Position': [-0.5, -0.5, 0.0, 1.0], - 'v2fcol': [1.0, 0.0, 0.0, 1.0], + 'v2fcol': [0.0, 1.0, 0.0, 1.0], }, 1: { 'vtx': 1, @@ -72,7 +72,7 @@ class GL_Parameter_Zoo(rdtest.TestCase): 'vtx': 2, 'idx': 2, 'gl_Position': [0.5, -0.5, 0.0, 1.0], - 'v2fcol': [0.0, 0.0, 1.0, 1.0], + 'v2fcol': [0.0, 1.0, 0.0, 1.0], }, } diff --git a/util/test/tests/GL/GL_Resource_Lifetimes.py b/util/test/tests/GL/GL_Resource_Lifetimes.py index d7a702cfe..6d00d54b0 100644 --- a/util/test/tests/GL/GL_Resource_Lifetimes.py +++ b/util/test/tests/GL/GL_Resource_Lifetimes.py @@ -7,7 +7,50 @@ class GL_Resource_Lifetimes(rdtest.TestCase): demos_frame_cap = 200 def check_capture(self): - self.check_final_backbuffer() + last_draw: rd.DrawcallDescription = self.get_last_draw() + + self.controller.SetFrameEvent(last_draw.eventId, True) + + tex = last_draw.copyDestination + + # green background around first triangle, blue around second + self.check_pixel_value(tex, 10, 10, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 118, 10, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 118, 118, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 10, 118, [0.0, 1.0, 0.0, 1.0]) + + self.check_pixel_value(tex, 138, 10, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 246, 10, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 246, 118, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 138, 118, [0.0, 0.0, 1.0, 1.0]) + + # Sample across each triangle, we expect things to be identical + for xoffs in [0, 128]: + # Check black checkerboard squares + self.check_pixel_value(tex, xoffs+42, 92, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+40, 85, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+68, 66, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+59, 47, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+81, 92, [0.0, 0.0, 0.0, 1.0]) + + # Check the red and green eyes of the smiley + self.check_pixel_value(tex, xoffs+49, 83, [1.0, 0.0, 0.09, 1.0]) + self.check_pixel_value(tex, xoffs+60, 83, [0.0, 1.0, 0.09, 1.0]) + + # Check the blue smile + self.check_pixel_value(tex, xoffs+64, 72, [0.09, 0.0, 1.0, 1.0]) + + # Check the orange face + self.check_pixel_value(tex, xoffs+46, 86, [1.0, 0.55, 0.36, 1.0]) + + # Check the empty space where we clamped and didn't repeat + self.check_pixel_value(tex, xoffs+82, 79, [0.72, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex, xoffs+84, 86, [0.72, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex, xoffs+88, 92, [0.72, 1.0, 1.0, 1.0]) + + # Check that the repeated smiley above is there + self.check_pixel_value(tex, xoffs+67, 53, [0.91, 0.636, 0.36, 1.0]) + self.check_pixel_value(tex, xoffs+65, 50, [1.0, 0.0, 0.09, 1.0]) # Check for resource leaks if len(self.controller.GetResources()) > 75: diff --git a/util/test/tests/GL/GL_Separable_Geometry_Shaders.py b/util/test/tests/GL/GL_Separable_Geometry_Shaders.py index 189849cb0..6b8f08a53 100644 --- a/util/test/tests/GL/GL_Separable_Geometry_Shaders.py +++ b/util/test/tests/GL/GL_Separable_Geometry_Shaders.py @@ -17,7 +17,7 @@ class GL_Separable_Geometry_Shaders(rdtest.TestCase): 'vtx': 0, 'idx': 0, 'gl_Position': [-0.5, -0.5, 0.0, 1.0], - 'v2f_block.col': [1.0, 0.0, 0.0, 1.0], + 'v2f_block.col': [0.0, 1.0, 0.0, 1.0], 'v2f_block.uv': [0.0, 0.0, 0.0, 1.0], }, 1: { @@ -31,7 +31,7 @@ class GL_Separable_Geometry_Shaders(rdtest.TestCase): 'vtx': 2, 'idx': 2, 'gl_Position': [0.5, -0.5, 0.0, 1.0], - 'v2f_block.col': [0.0, 0.0, 1.0, 1.0], + 'v2f_block.col': [0.0, 1.0, 0.0, 1.0], 'v2f_block.uv': [1.0, 0.0, 0.0, 1.0], }, } @@ -45,7 +45,7 @@ class GL_Separable_Geometry_Shaders(rdtest.TestCase): 'vtx': 0, 'idx': 0, 'gl_Position': [0.2, -0.5, 0.0, 1.0], - 'v2f_block.col': [1.0, 0.0, 0.0, 1.0], + 'v2f_block.col': [0.0, 1.0, 0.0, 1.0], 'v2f_block.uv': [0.0, 0.0, 0.0, 1.0], }, 1: { @@ -66,16 +66,23 @@ class GL_Separable_Geometry_Shaders(rdtest.TestCase): 'vtx': 5, 'idx': 5, 'gl_Position': [-0.2, -0.5, 0.0, 1.0], - 'v2f_block.col': [1.0, 1.0, 0.0, 0.0], + 'v2f_block.col': [1.0, 0.0, 1.0, 0.0], 'v2f_block.uv': [1.0, 0.0, 0.0, 1.0], }, 8: { 'vtx': 8, 'idx': 8, 'gl_Position': [0.5, 0.2, 0.0, 1.0], - 'v2f_block.col': [0.0, 1.0, 0.0, 1.0], + 'v2f_block.col': [1.0, 0.0, 0.0, 1.0], 'v2f_block.uv': [1.0, 0.0, 0.0, 1.0], }, } self.check_mesh_data(postgs_ref, postgs_data) + + pipe: rd.PipeState = self.controller.GetPipelineState() + + out = pipe.GetOutputTargets()[0].resourceId + self.check_pixel_value(out, 0.5, 0.1, [1.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(out, 0.75, 0.5, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(out, 0.25, 0.5, [1.0, 0.0, 1.0, 0.0]) diff --git a/util/test/tests/GL/GL_Shader_Editing.py b/util/test/tests/GL/GL_Shader_Editing.py index 7461f31be..79f537128 100644 --- a/util/test/tests/GL/GL_Shader_Editing.py +++ b/util/test/tests/GL/GL_Shader_Editing.py @@ -144,9 +144,9 @@ class GL_Shader_Editing(rdtest.TestCase): self.controller.SetFrameEvent(self.get_last_draw().eventId, True) # Original sample positions are now the clear color - self.check_pixel_value(tex, 0.25, 0.25, [0.4, 0.5, 0.6, 1.0]) - self.check_pixel_value(tex, 0.75, 0.25, [0.4, 0.5, 0.6, 1.0]) - self.check_pixel_value(tex, 0.25, 0.75, [0.4, 0.5, 0.6, 1.0]) + self.check_pixel_value(tex, 0.25, 0.25, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex, 0.75, 0.25, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex, 0.25, 0.75, [0.2, 0.2, 0.2, 1.0]) # The triangles are still the same colour but up and to the right self.check_pixel_value(tex, 0.45, 0.05, [0.0, 1.0, 1.0, 1.0]) @@ -160,9 +160,9 @@ class GL_Shader_Editing(rdtest.TestCase): self.controller.SetFrameEvent(self.get_last_draw().eventId, True) # Original sample positions are still the clear color - self.check_pixel_value(tex, 0.25, 0.25, [0.4, 0.5, 0.6, 1.0]) - self.check_pixel_value(tex, 0.75, 0.25, [0.4, 0.5, 0.6, 1.0]) - self.check_pixel_value(tex, 0.25, 0.75, [0.4, 0.5, 0.6, 1.0]) + self.check_pixel_value(tex, 0.25, 0.25, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex, 0.75, 0.25, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex, 0.25, 0.75, [0.2, 0.2, 0.2, 1.0]) # The lower triangle is the edited colour, the other two have reverted to green channel only self.check_pixel_value(tex, 0.45, 0.05, [0.0, 1.0, 0.0, 1.0]) @@ -210,14 +210,14 @@ class GL_Shader_Editing(rdtest.TestCase): self.controller.SetFrameEvent(self.get_last_draw().eventId, True) # Now it should be green-blue and offset - self.check_pixel_value(tex, 0.75, 0.75, [0.4, 0.5, 0.6, 1.0]) + self.check_pixel_value(tex, 0.75, 0.75, [0.2, 0.2, 0.2, 1.0]) self.check_pixel_value(tex, 0.95, 0.55, [0.0, 1.0, 1.0, 1.0]) self.controller.RemoveReplacement(fsseprefl.resourceId) self.controller.SetFrameEvent(self.get_last_draw().eventId, True) # Now it should be back to green and offset - self.check_pixel_value(tex, 0.75, 0.75, [0.4, 0.5, 0.6, 1.0]) + self.check_pixel_value(tex, 0.75, 0.75, [0.2, 0.2, 0.2, 1.0]) self.check_pixel_value(tex, 0.95, 0.55, [0.0, 1.0, 0.0, 1.0]) self.controller.RemoveReplacement(vsseprefl.resourceId) diff --git a/util/test/tests/GL/GL_Simple_Triangle.py b/util/test/tests/GL/GL_Simple_Triangle.py index c0a3af817..24cf9f6ed 100644 --- a/util/test/tests/GL/GL_Simple_Triangle.py +++ b/util/test/tests/GL/GL_Simple_Triangle.py @@ -6,7 +6,11 @@ class GL_Simple_Triangle(rdtest.TestCase): demos_test_name = 'GL_Simple_Triangle' def check_capture(self): - self.check_final_backbuffer() + last_draw: rd.DrawcallDescription = self.get_last_draw() + + self.controller.SetFrameEvent(last_draw.eventId, True) + + self.check_triangle(out=last_draw.copyDestination) self.check_export(self.capture_filename) @@ -22,7 +26,7 @@ class GL_Simple_Triangle(rdtest.TestCase): 'idx': 0, 'gl_Position': [-0.5, -0.5, 0.0, 1.0], 'v2f_block.pos': [-0.5, -0.5, 0.0, 1.0], - 'v2f_block.col': [1.0, 0.0, 0.0, 1.0], + 'v2f_block.col': [0.0, 1.0, 0.0, 1.0], 'v2f_block.uv': [0.0, 0.0, 0.0, 1.0], }, 1: { @@ -38,7 +42,7 @@ class GL_Simple_Triangle(rdtest.TestCase): 'idx': 2, 'gl_Position': [0.5, -0.5, 0.0, 1.0], 'v2f_block.pos': [0.5, -0.5, 0.0, 1.0], - 'v2f_block.col': [0.0, 0.0, 1.0, 1.0], + 'v2f_block.col': [0.0, 1.0, 0.0, 1.0], 'v2f_block.uv': [1.0, 0.0, 0.0, 1.0], }, } diff --git a/util/test/tests/GL/GL_VAO_0.py b/util/test/tests/GL/GL_VAO_0.py index e4ea2f2d1..654607c99 100644 --- a/util/test/tests/GL/GL_VAO_0.py +++ b/util/test/tests/GL/GL_VAO_0.py @@ -6,8 +6,6 @@ class GL_VAO_0(rdtest.TestCase): demos_test_name = 'GL_VAO_0' def check_capture(self): - self.check_final_backbuffer() - draw = self.find_draw("Draw") # There are 4 draws with variations on client-memory VBs or IBs @@ -16,6 +14,11 @@ class GL_VAO_0(rdtest.TestCase): self.controller.SetFrameEvent(draw.eventId, False) + pipe: rd.PipeState = self.controller.GetPipelineState() + vp: rd.Viewport = pipe.GetViewport(0) + + self.check_triangle(vp=(vp.x, vp.y, vp.width, vp.height)) + postvs_data = self.get_postvs(rd.MeshDataStage.VSOut, 0, draw.numIndices) postvs_ref = { @@ -24,7 +27,7 @@ class GL_VAO_0(rdtest.TestCase): 'idx': 0, 'gl_Position': [-0.5, -0.5, 0.0, 1.0], 'v2f_block.pos': [-0.5, -0.5, 0.0, 1.0], - 'v2f_block.col': [1.0, 0.0, 0.0, 1.0], + 'v2f_block.col': [0.0, 1.0, 0.0, 1.0], 'v2f_block.uv': [0.0, 0.0, 0.0, 1.0], }, 1: { @@ -40,7 +43,7 @@ class GL_VAO_0(rdtest.TestCase): 'idx': 2, 'gl_Position': [0.5, -0.5, 0.0, 1.0], 'v2f_block.pos': [0.5, -0.5, 0.0, 1.0], - 'v2f_block.col': [0.0, 0.0, 1.0, 1.0], + 'v2f_block.col': [0.0, 1.0, 0.0, 1.0], 'v2f_block.uv': [1.0, 0.0, 0.0, 1.0], }, } diff --git a/util/test/tests/Vulkan/VK_Indirect.py b/util/test/tests/Vulkan/VK_Indirect.py index eab892ee2..bc8139a45 100644 --- a/util/test/tests/Vulkan/VK_Indirect.py +++ b/util/test/tests/Vulkan/VK_Indirect.py @@ -28,8 +28,6 @@ class VK_Indirect(rdtest.TestCase): self.overlay_idx = self.overlay_idx + 1 def check_capture(self): - self.check_final_backbuffer() - self.overlay_idx = 1 fill = self.find_draw("vkCmdFillBuffer") @@ -47,6 +45,27 @@ class VK_Indirect(rdtest.TestCase): for level in ["Primary", "Secondary"]: rdtest.log.print("Checking {} indirect calls".format(level)) + final = self.find_draw("{}: Final".format(level)) + + indirect_count_root = self.find_draw("{}: KHR_draw_indirect_count".format(level)) + + self.controller.SetFrameEvent(final.eventId, False) + + tex = self.controller.GetPipelineState().GetOutputTargets()[0].resourceId + + # Check the top row, non indirect count and always present + self.check_pixel_value(tex, 60, 60, [1.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, 100, 60, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 145, 35, [1.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 205, 35, [0.0, 1.0, 1.0, 1.0]) + + # if present, check bottom row of indirect count + if indirect_count_root is not None: + self.check_pixel_value(tex, 60, 220, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 100, 220, [1.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 145, 185, [0.5, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 205, 185, [0.5, 0.0, 1.0, 1.0]) + dispatches = self.find_draw("{}: Dispatches".format(level)) # Set up a ReplayOutput and TextureSave for quickly testing the drawcall highlight overlay @@ -209,8 +228,6 @@ class VK_Indirect(rdtest.TestCase): rdtest.log.success("{} {} is as expected".format(level, draw.name)) - indirect_count_root = self.find_draw("{}: KHR_draw_indirect_count".format(level)) - if indirect_count_root is not None: self.check(indirect_count_root.children[0].name == '{}: Empty count draws'.format(level)) self.check(indirect_count_root.children[1].name == '{}: Indirect count draws'.format(level)) diff --git a/util/test/tests/Vulkan/VK_Int8_IBuffer.py b/util/test/tests/Vulkan/VK_Int8_IBuffer.py index 818e1973b..905057be0 100644 --- a/util/test/tests/Vulkan/VK_Int8_IBuffer.py +++ b/util/test/tests/Vulkan/VK_Int8_IBuffer.py @@ -6,8 +6,6 @@ class VK_Int8_IBuffer(rdtest.TestCase): demos_test_name = 'VK_Int8_IBuffer' def check_capture(self): - self.check_final_backbuffer() - draw = self.find_draw("Draw") self.check(draw is not None) @@ -27,7 +25,7 @@ class VK_Int8_IBuffer(rdtest.TestCase): 'vtx': 0, 'idx': 0, 'gl_PerVertex.gl_Position': [-0.8, -0.2, 0.0, 1.0], - 'vertOut.col': [1.0, 0.0, 0.0, 1.0], + 'vertOut.col': [0.0, 1.0, 0.0, 1.0], 'vertOut.uv': [0.0, 0.0, 0.0, 1.0], }, 4: { @@ -44,9 +42,22 @@ class VK_Int8_IBuffer(rdtest.TestCase): 'vtx': 9, 'idx': 8, 'gl_PerVertex.gl_Position': [-0.8, 0.7, 0.0, 1.0], - 'vertOut.col': [1.0, 0.0, 0.0, 1.0], + 'vertOut.col': [0.0, 0.0, 1.0, 1.0], 'vertOut.uv': [0.0, 0.0, 0.0, 1.0], }, } self.check_mesh_data(postvs_ref, postvs_data) + + # Check that the rendered mesh is as expected + out = pipe.GetOutputTargets()[0].resourceId + for x in [x*0.01 for x in range(1, 100)]: + self.check_pixel_value(out, x, 0.1, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(out, x, 0.5, [0.2, 0.2, 0.2, 1.0]) + + self.check_pixel_value(out, 0.3, 0.25, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(out, 0.5, 0.25, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(out, 0.7, 0.25, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(out, 0.3, 0.75, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(out, 0.5, 0.75, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(out, 0.7, 0.75, [0.0, 0.0, 1.0, 1.0]) diff --git a/util/test/tests/Vulkan/VK_Overlay_Test.py b/util/test/tests/Vulkan/VK_Overlay_Test.py index 0bf1bc3c2..6a6a7a966 100644 --- a/util/test/tests/Vulkan/VK_Overlay_Test.py +++ b/util/test/tests/Vulkan/VK_Overlay_Test.py @@ -35,8 +35,6 @@ class VK_Overlay_Test(rdtest.TestCase): rdtest.log.success("Reference and output image are identical for {}".format(test_name)) def check_capture(self): - self.check_final_backbuffer() - out: rd.ReplayOutput = self.controller.CreateOutput(rd.CreateHeadlessWindowingData(100, 100), rd.ReplayOutputType.Texture) self.check(out is not None) @@ -50,6 +48,34 @@ class VK_Overlay_Test(rdtest.TestCase): tex = rd.TextureDisplay() tex.resourceId = pipe.GetOutputTargets()[0].resourceId + # Check the actual output is as expected first. + + # Background around the outside + self.check_pixel_value(tex.resourceId, 0.1, 0.1, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex.resourceId, 0.8, 0.1, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex.resourceId, 0.5, 0.95, [0.2, 0.2, 0.2, 1.0]) + + # Large dark grey triangle + self.check_pixel_value(tex.resourceId, 0.5, 0.1, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.5, 0.9, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.2, 0.9, [0.1, 0.1, 0.1, 1.0]) + self.check_pixel_value(tex.resourceId, 0.8, 0.9, [0.1, 0.1, 0.1, 1.0]) + + # Red upper half triangle + self.check_pixel_value(tex.resourceId, 0.3, 0.4, [1.0, 0.0, 0.0, 1.0]) + # Blue lower half triangle + self.check_pixel_value(tex.resourceId, 0.3, 0.6, [0.0, 0.0, 1.0, 1.0]) + + # Floating clipped triangle + self.check_pixel_value(tex.resourceId, 335, 140, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex.resourceId, 340, 140, [0.2, 0.2, 0.2, 1.0]) + + # Triangle size triangles + self.check_pixel_value(tex.resourceId, 200, 51, [1.0, 0.5, 1.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 65, [1.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 79, [0.0, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex.resourceId, 200, 93, [0.0, 1.0, 0.0, 1.0]) + for overlay in rd.DebugOverlay: if overlay == rd.DebugOverlay.NoOverlay: continue diff --git a/util/test/tests/Vulkan/VK_Resource_Lifetimes.py b/util/test/tests/Vulkan/VK_Resource_Lifetimes.py index ebcba2e46..e2806127d 100644 --- a/util/test/tests/Vulkan/VK_Resource_Lifetimes.py +++ b/util/test/tests/Vulkan/VK_Resource_Lifetimes.py @@ -7,7 +7,50 @@ class VK_Resource_Lifetimes(rdtest.TestCase): demos_frame_cap = 200 def check_capture(self): - self.check_final_backbuffer() + last_draw: rd.DrawcallDescription = self.get_last_draw() + + self.controller.SetFrameEvent(last_draw.eventId, True) + + tex = last_draw.copyDestination + + # green background around first triangle, blue around second + self.check_pixel_value(tex, 10, 10, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 118, 10, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 118, 118, [0.0, 1.0, 0.0, 1.0]) + self.check_pixel_value(tex, 10, 118, [0.0, 1.0, 0.0, 1.0]) + + self.check_pixel_value(tex, 138, 10, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 246, 10, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 246, 118, [0.0, 0.0, 1.0, 1.0]) + self.check_pixel_value(tex, 138, 118, [0.0, 0.0, 1.0, 1.0]) + + # Sample across each triangle, we expect things to be identical + for xoffs in [0, 128]: + # Check black checkerboard squares + self.check_pixel_value(tex, xoffs+42, 92, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+40, 85, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+68, 66, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+59, 47, [0.0, 0.0, 0.0, 1.0]) + self.check_pixel_value(tex, xoffs+81, 92, [0.0, 0.0, 0.0, 1.0]) + + # Check the red and green eyes of the smiley + self.check_pixel_value(tex, xoffs+49, 83, [1.0, 0.0, 0.09, 1.0]) + self.check_pixel_value(tex, xoffs+60, 83, [0.0, 1.0, 0.09, 1.0]) + + # Check the blue smile + self.check_pixel_value(tex, xoffs+64, 72, [0.09, 0.0, 1.0, 1.0]) + + # Check the orange face + self.check_pixel_value(tex, xoffs+46, 86, [1.0, 0.55, 0.36, 1.0]) + + # Check the empty space where we clamped and didn't repeat + self.check_pixel_value(tex, xoffs+82, 79, [0.72, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex, xoffs+84, 86, [0.72, 1.0, 1.0, 1.0]) + self.check_pixel_value(tex, xoffs+88, 92, [0.72, 1.0, 1.0, 1.0]) + + # Check that the repeated smiley above is there + self.check_pixel_value(tex, xoffs+67, 53, [0.91, 0.636, 0.36, 1.0]) + self.check_pixel_value(tex, xoffs+65, 50, [1.0, 0.0, 0.09, 1.0]) # Check for resource leaks if len(self.controller.GetResources()) > 75: diff --git a/util/test/tests/Vulkan/VK_Secondary_CmdBuf.py b/util/test/tests/Vulkan/VK_Secondary_CmdBuf.py index 8c490fac8..410d56043 100644 --- a/util/test/tests/Vulkan/VK_Secondary_CmdBuf.py +++ b/util/test/tests/Vulkan/VK_Secondary_CmdBuf.py @@ -6,7 +6,17 @@ class VK_Secondary_CmdBuf(rdtest.TestCase): demos_test_name = 'VK_Secondary_CmdBuf' def check_capture(self): - self.check_final_backbuffer() + last_draw: rd.DrawcallDescription = self.get_last_draw() + + self.controller.SetFrameEvent(last_draw.eventId, True) + + tex = self.get_texture(last_draw.copyDestination) + + # Green triangle on the left, blue on the right + self.check_triangle(out=last_draw.copyDestination, fore=[0.0, 1.0, 0.0, 1.0], + vp=(0, 0, tex.width / 2, tex.height)) + self.check_triangle(out=last_draw.copyDestination, fore=[0.0, 0.0, 1.0, 1.0], + vp=(tex.width / 2, 0, tex.width/2, tex.height)) draw = self.find_draw("Primary") diff --git a/util/test/tests/Vulkan/VK_Shader_Editing.py b/util/test/tests/Vulkan/VK_Shader_Editing.py index be97179ab..5b85599ee 100644 --- a/util/test/tests/Vulkan/VK_Shader_Editing.py +++ b/util/test/tests/Vulkan/VK_Shader_Editing.py @@ -110,8 +110,8 @@ class VK_Shader_Editing(rdtest.TestCase): self.controller.SetFrameEvent(eid, True) # Original sample positions are now the clear color - self.check_pixel_value(tex, 0.25, 0.5, [0.4, 0.5, 0.6, 1.0]) - self.check_pixel_value(tex, 0.75, 0.5, [0.4, 0.5, 0.6, 1.0]) + self.check_pixel_value(tex, 0.25, 0.5, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex, 0.75, 0.5, [0.2, 0.2, 0.2, 1.0]) # Triangles have green and blue channel self.check_pixel_value(tex, 0.45, 0.95, [0.0, 1.0, 1.0, 1.0]) @@ -124,8 +124,8 @@ class VK_Shader_Editing(rdtest.TestCase): self.controller.SetFrameEvent(eid, True) # Original sample positions are still the clear color - self.check_pixel_value(tex, 0.25, 0.5, [0.4, 0.5, 0.6, 1.0]) - self.check_pixel_value(tex, 0.75, 0.5, [0.4, 0.5, 0.6, 1.0]) + self.check_pixel_value(tex, 0.25, 0.5, [0.2, 0.2, 0.2, 1.0]) + self.check_pixel_value(tex, 0.75, 0.5, [0.2, 0.2, 0.2, 1.0]) # The right triangle is the edited colour, the other two have reverted to green channel only self.check_pixel_value(tex, 0.45, 0.95, [0.0, 1.0, 0.0, 1.0]) diff --git a/util/test/tests/Vulkan/VK_Simple_Triangle.py b/util/test/tests/Vulkan/VK_Simple_Triangle.py index a3177d89b..dac5a199a 100644 --- a/util/test/tests/Vulkan/VK_Simple_Triangle.py +++ b/util/test/tests/Vulkan/VK_Simple_Triangle.py @@ -6,7 +6,11 @@ class VK_Simple_Triangle(rdtest.TestCase): demos_test_name = 'VK_Simple_Triangle' def check_capture(self): - self.check_final_backbuffer() + last_draw: rd.DrawcallDescription = self.get_last_draw() + + self.controller.SetFrameEvent(last_draw.eventId, True) + + self.check_triangle(out=last_draw.copyDestination) self.check_export(self.capture_filename) @@ -22,7 +26,7 @@ class VK_Simple_Triangle(rdtest.TestCase): 'idx': 0, 'gl_PerVertex.gl_Position': [-0.5, 0.5, 0.0, 1.0], 'vertOut.pos': [-0.5, 0.5, 0.0, 1.0], - 'vertOut.col': [1.0, 0.0, 0.0, 1.0], + 'vertOut.col': [0.0, 1.0, 0.0, 1.0], 'vertOut.uv': [0.0, 0.0, 0.0, 1.0], }, 1: { @@ -38,7 +42,7 @@ class VK_Simple_Triangle(rdtest.TestCase): 'idx': 2, 'gl_PerVertex.gl_Position': [0.5, 0.5, 0.0, 1.0], 'vertOut.pos': [0.5, 0.5, 0.0, 1.0], - 'vertOut.col': [0.0, 0.0, 1.0, 1.0], + 'vertOut.col': [0.0, 1.0, 0.0, 1.0], 'vertOut.uv': [1.0, 0.0, 0.0, 1.0], }, }