mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 01:20:42 +00:00
Test structured export/import of MSAA textures
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user