Browse Source

Small optimization in the renderer

Panagiotis Christopoulos Charitos 9 years ago
parent
commit
1cc5c47cb2
3 changed files with 20 additions and 13 deletions
  1. 19 1
      src/anki/gr/gl/TextureImpl.cpp
  2. 1 1
      src/anki/renderer/Ms.cpp
  3. 0 11
      src/anki/renderer/Renderer.cpp

+ 19 - 1
src/anki/gr/gl/TextureImpl.cpp

@@ -123,7 +123,25 @@ static void convertTextureInformation(
 		}
 		}
 		else
 		else
 		{
 		{
-			ANKI_ASSERT(0 && "TODO");
+			ANKI_ASSERT(!"TODO");
+		}
+		break;
+	case ComponentFormat::R32G32B32A32:
+		if(pf.m_transform == TransformFormat::FLOAT)
+		{
+			format = GL_RGBA;
+			internalFormat = GL_RGBA32F;
+			type = GL_FLOAT;
+		}
+		else if(pf.m_transform == TransformFormat::UINT)
+		{
+			format = GL_RGBA_INTEGER;
+			internalFormat = GL_RGBA32UI;
+			type = GL_UNSIGNED_INT;
+		}
+		else
+		{
+			ANKI_ASSERT(!"TODO");
 		}
 		}
 		break;
 		break;
 	case ComponentFormat::R16G16B16:
 	case ComponentFormat::R16G16B16:

+ 1 - 1
src/anki/renderer/Ms.cpp

@@ -53,7 +53,7 @@ Error Ms::createRt(U32 samples)
 		TextureUsageBit::SAMPLED_FRAGMENT | TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE
 		TextureUsageBit::SAMPLED_FRAGMENT | TextureUsageBit::FRAMEBUFFER_ATTACHMENT_WRITE
 			| TextureUsageBit::GENERATE_MIPMAPS,
 			| TextureUsageBit::GENERATE_MIPMAPS,
 		SamplingFilter::NEAREST,
 		SamplingFilter::NEAREST,
-		getDepthRtMipmapCount(),
+		1,
 		m_rt2);
 		m_rt2);
 
 
 	AttachmentLoadOperation loadop = AttachmentLoadOperation::DONT_CARE;
 	AttachmentLoadOperation loadop = AttachmentLoadOperation::DONT_CARE;

+ 0 - 11
src/anki/renderer/Renderer.cpp

@@ -245,13 +245,7 @@ Error Renderer::render(RenderingContext& ctx)
 		TextureUsageBit::GENERATE_MIPMAPS,
 		TextureUsageBit::GENERATE_MIPMAPS,
 		TextureSurfaceInfo(0, 0, 0, 0));
 		TextureSurfaceInfo(0, 0, 0, 0));
 
 
-	cmdb->setTextureSurfaceBarrier(m_ms->getRt2(),
-		TextureUsageBit::SAMPLED_FRAGMENT,
-		TextureUsageBit::GENERATE_MIPMAPS,
-		TextureSurfaceInfo(0, 0, 0, 0));
-
 	cmdb->generateMipmaps2d(m_ms->getDepthRt(), 0, 0);
 	cmdb->generateMipmaps2d(m_ms->getDepthRt(), 0, 0);
-	cmdb->generateMipmaps2d(m_ms->getRt2(), 0, 0);
 
 
 	for(U i = 0; i < m_ms->getDepthRtMipmapCount(); ++i)
 	for(U i = 0; i < m_ms->getDepthRtMipmapCount(); ++i)
 	{
 	{
@@ -259,11 +253,6 @@ Error Renderer::render(RenderingContext& ctx)
 			TextureUsageBit::GENERATE_MIPMAPS,
 			TextureUsageBit::GENERATE_MIPMAPS,
 			TextureUsageBit::SAMPLED_FRAGMENT | TextureUsageBit::FRAMEBUFFER_ATTACHMENT_READ,
 			TextureUsageBit::SAMPLED_FRAGMENT | TextureUsageBit::FRAMEBUFFER_ATTACHMENT_READ,
 			TextureSurfaceInfo(i, 0, 0, 0));
 			TextureSurfaceInfo(i, 0, 0, 0));
-
-		cmdb->setTextureSurfaceBarrier(m_ms->getRt2(),
-			TextureUsageBit::GENERATE_MIPMAPS,
-			TextureUsageBit::SAMPLED_FRAGMENT,
-			TextureSurfaceInfo(i, 0, 0, 0));
 	}
 	}
 
 
 	m_lf->updateIndirectInfo(ctx, cmdb);
 	m_lf->updateIndirectInfo(ctx, cmdb);