Test structured export/import of MSAA textures

This commit is contained in:
baldurk
2021-04-15 14:33:57 +01:00
parent cf50fef33a
commit 2720ff354a
4 changed files with 32 additions and 0 deletions
@@ -50,10 +50,15 @@ RD_TEST(D3D11_Simple_Triangle, D3D11GraphicsTest)
ID3D11Texture2DPtr fltTex = MakeTexture(DXGI_FORMAT_R32G32B32A32_FLOAT, 4, 4).RTV();
ID3D11RenderTargetViewPtr fltRT = MakeRTV(fltTex);
ID3D11Texture2DPtr fltMSTex =
MakeTexture(DXGI_FORMAT_R16G16B16A16_FLOAT, 4, 4).RTV().Multisampled(4);
ID3D11RenderTargetViewPtr fltMSRT = MakeRTV(fltMSTex);
while(Running())
{
ClearRenderTargetView(bbRTV, {0.2f, 0.2f, 0.2f, 1.0f});
ClearRenderTargetView(fltRT, {0.2f, 0.2f, 0.2f, 1.0f});
ClearRenderTargetView(fltMSRT, {0.2f, 0.2f, 0.2f, 1.0f});
IASetVertexBuffer(vb, sizeof(DefaultA2V), 0);
ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
@@ -51,6 +51,11 @@ RD_TEST(D3D12_Simple_Triangle, D3D12GraphicsTest)
.RTV()
.InitialState(D3D12_RESOURCE_STATE_RENDER_TARGET);
ID3D12ResourcePtr rtvMStex = MakeTexture(DXGI_FORMAT_R16G16B16A16_FLOAT, 4, 4)
.RTV()
.Multisampled(4)
.InitialState(D3D12_RESOURCE_STATE_RENDER_TARGET);
while(Running())
{
ID3D12GraphicsCommandListPtr cmd = GetCommandBuffer();
@@ -65,6 +70,7 @@ RD_TEST(D3D12_Simple_Triangle, D3D12GraphicsTest)
ClearRenderTargetView(cmd, rtv, {0.2f, 0.2f, 0.2f, 1.0f});
ClearRenderTargetView(cmd, MakeRTV(rtvtex).CreateCPU(1), {0.2f, 0.2f, 0.2f, 1.0f});
ClearRenderTargetView(cmd, MakeRTV(rtvMStex).CreateCPU(2), {0.2f, 0.2f, 0.2f, 1.0f});
cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
@@ -60,6 +60,10 @@ RD_TEST(GL_Simple_Triangle, OpenGLGraphicsTest)
textureColourData[i * 4 + c] = col[c];
}
GLuint texMS = MakeTexture();
glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, texMS);
glTexStorage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, 4, GL_RGBA16F, 4, 4, GL_TRUE);
while(Running())
{
glClearBufferfv(GL_COLOR, 0, col);
@@ -67,6 +71,8 @@ RD_TEST(GL_Simple_Triangle, OpenGLGraphicsTest)
glBindTexture(GL_TEXTURE_2D, tex);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 4, 4, GL_RGBA, GL_FLOAT, textureColourData);
glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, texMS);
glBindVertexArray(vao);
glUseProgram(program);
+15
View File
@@ -67,6 +67,11 @@ RD_TEST(VK_Simple_Triangle, VulkanGraphicsTest)
VK_IMAGE_USAGE_TRANSFER_DST_BIT),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}));
AllocatedImage offimgMS(
this, vkh::ImageCreateInfo(4, 4, 0, VK_FORMAT_R16G16B16A16_SFLOAT,
VK_IMAGE_USAGE_TRANSFER_DST_BIT, 1, 1, VK_SAMPLE_COUNT_4_BIT),
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}));
while(Running())
{
VkCommandBuffer cmd = GetCommandBuffer();
@@ -90,6 +95,16 @@ RD_TEST(VK_Simple_Triangle, VulkanGraphicsTest)
vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1,
vkh::ImageSubresourceRange());
vkh::cmdPipelineBarrier(
cmd, {
vkh::ImageMemoryBarrier(0, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_UNDEFINED,
VK_IMAGE_LAYOUT_GENERAL, offimgMS.image),
});
vkCmdClearColorImage(cmd, offimgMS.image, VK_IMAGE_LAYOUT_GENERAL,
vkh::ClearColorValue(0.2f, 0.2f, 0.2f, 1.0f), 1,
vkh::ImageSubresourceRange());
vkCmdBeginRenderPass(
cmd, vkh::RenderPassBeginInfo(mainWindow->rp, mainWindow->GetFB(), mainWindow->scissor),
VK_SUBPASS_CONTENTS_INLINE);