2
0
Эх сурвалжийг харах

Vulkan: Bug fix. Now the simple scene worksgit status

Panagiotis Christopoulos Charitos 9 жил өмнө
parent
commit
ae0e57e703

+ 10 - 4
shaders/Pps.frag.glsl

@@ -104,23 +104,29 @@ vec3 colorGrading(in vec3 color)
 
 void main()
 {
+#if DRAW_TO_DEFAULT && defined(ANKI_VK)
+	vec2 uv = vec2(in_uv.x, 1.0 - in_uv.y);
+#else
+	vec2 uv = in_uv;
+#endif
+
 #if SHARPEN_ENABLED
-	out_color = sharpen(u_isRt, in_uv);
+	out_color = sharpen(u_isRt, uv);
 #else
-	out_color = textureLod(u_isRt, in_uv, 0.0).rgb;
+	out_color = textureLod(u_isRt, uv, 0.0).rgb;
 #endif
 
 	out_color = tonemap(out_color, u_luminance.averageLuminancePad3.x, 0.0);
 
 #if BLOOM_ENABLED
-	vec3 bloom = textureLod(u_ppsBloomLfRt, in_uv, 0.0).rgb;
+	vec3 bloom = textureLod(u_ppsBloomLfRt, uv, 0.0).rgb;
 	out_color += bloom;
 #endif
 
 	out_color = colorGrading(out_color);
 
 #if DBG_ENABLED
-	out_color += textureLod(u_dbgRt, in_uv, 0.0).rgb;
+	out_color += textureLod(u_dbgRt, uv, 0.0).rgb;
 #endif
 
 #if 0

+ 1 - 0
src/anki/gr/vulkan/CommandBufferImpl.cpp

@@ -448,6 +448,7 @@ void CommandBufferImpl::uploadTextureVolume(
 		U width = impl.m_width >> vol.m_level;
 		U height = impl.m_height >> vol.m_level;
 		U depth = impl.m_depth >> vol.m_level;
+		(void)depth;
 		ANKI_ASSERT(token.m_range == computeVolumeSize(width, height, depth, impl.m_format));
 
 		// Copy

+ 1 - 1
src/anki/gr/vulkan/CommandBufferImpl.h

@@ -161,8 +161,8 @@ private:
 #if ANKI_ASSERTIONS
 	// Debug stuff
 	Bool8 m_insideRenderPass = false;
-	VkSubpassContents m_subpassContents = VK_SUBPASS_CONTENTS_MAX_ENUM;
 #endif
+	VkSubpassContents m_subpassContents = VK_SUBPASS_CONTENTS_MAX_ENUM;
 
 	/// Some common operations per command.
 	void commandCommon();

+ 0 - 9
src/anki/gr/vulkan/GrManagerImpl.cpp

@@ -9,7 +9,6 @@
 #include <anki/gr/Pipeline.h>
 #include <anki/gr/vulkan/CommandBufferImpl.h>
 #include <anki/gr/CommandBuffer.h>
-#include <anki/gr/vulkan/TextureMisc.h>
 
 #include <anki/core/Config.h>
 #include <glslang/Public/ShaderLang.h>
@@ -48,11 +47,6 @@ GrManagerImpl::~GrManagerImpl()
 	m_perThread.destroy(getAllocator());
 
 	// THIRD THING: Continue with the rest
-	if(m_texUploader)
-	{
-		getAllocator().deleteInstance(m_texUploader);
-	}
-
 	m_rpCreator.destroy();
 
 	if(m_globalPipelineLayout)
@@ -127,9 +121,6 @@ Error GrManagerImpl::initInternal(const GrManagerInitInfo& init)
 	m_fences.init(getAllocator(), m_device);
 	m_semaphores.init(getAllocator(), m_device);
 
-	m_texUploader = getAllocator().newInstance<TextureFallbackUploader>(this);
-	ANKI_CHECK(m_texUploader->init());
-
 	m_queryAlloc.init(getAllocator(), m_device);
 
 	// Set m_r8g8b8ImagesSupported

+ 0 - 8
src/anki/gr/vulkan/GrManagerImpl.h

@@ -150,12 +150,6 @@ public:
 	}
 	/// @}
 
-	TextureFallbackUploader& getTextureFallbackUploader()
-	{
-		ANKI_ASSERT(m_texUploader);
-		return *m_texUploader;
-	}
-
 	GpuVendor getGpuVendor() const
 	{
 		return m_vendor;
@@ -273,8 +267,6 @@ private:
 	SemaphoreFactory m_semaphores;
 	/// @}
 
-	TextureFallbackUploader* m_texUploader = nullptr;
-
 	QueryAllocator m_queryAlloc;
 
 	Bool8 m_r8g8b8ImagesSupported = false;

+ 0 - 43
src/anki/gr/vulkan/TextureMisc.cpp

@@ -1,43 +0,0 @@
-// Copyright (C) 2009-2016, Panagiotis Christopoulos Charitos and contributors.
-// All rights reserved.
-// Code licensed under the BSD License.
-// http://www.anki3d.org/LICENSE
-
-#include <anki/gr/vulkan/TextureMisc.h>
-
-namespace anki
-{
-
-static_assert(MAX_BOUND_RESOURCE_GROUPS == 2, "Code bellow assumes that");
-
-static const CString UPLOAD_R8G8B8_COMPUTE_SHADER = R"(
-const uint WORKGROUP_SIZE_X = 4u;
-
-layout(local_size_x = WORKGROUP_SIZE_X,
-	local_size_y = 1,
-	local_size_z = 1) in;
-	
-layout(push_constant) uniform pc0_ 
-{
-	uvec4 texSize;
-} u_regs;
-
-layout(std430, set = 2, binding = 0) buffer blk0_
-{
-	uint u_pixels[];
-};
-
-void main()
-{
-	// XXX
-}
-
-)";
-
-Error TextureFallbackUploader::init()
-{
-
-	return ErrorCode::NONE;
-}
-
-} // end namespace anki

+ 0 - 31
src/anki/gr/vulkan/TextureMisc.h

@@ -1,31 +0,0 @@
-// Copyright (C) 2009-2016, Panagiotis Christopoulos Charitos and contributors.
-// All rights reserved.
-// Code licensed under the BSD License.
-// http://www.anki3d.org/LICENSE
-
-#include <anki/gr/vulkan/Common.h>
-#include <anki/gr/Pipeline.h>
-
-namespace anki
-{
-
-/// @addtogroup vulkan
-/// @{
-
-/// TODO
-class TextureFallbackUploader
-{
-public:
-	GrManagerImpl* m_manager;
-	PipelinePtr m_uploadR8g8b8Ppline;
-
-	TextureFallbackUploader(GrManagerImpl* manager)
-		: m_manager(manager)
-	{
-	}
-
-	ANKI_USE_RESULT Error init();
-};
-/// @}
-
-} // end namespace anki

+ 5 - 3
src/anki/renderer/Pps.cpp

@@ -96,7 +96,7 @@ Error Pps::run(RenderingContext& ctx)
 	{
 		// Need to create it
 
-		ShaderResourcePtr& frag = m_frag[dbgEnabled];
+		ShaderResourcePtr& frag = m_frag[drawToDefaultFb][dbgEnabled];
 		if(!frag)
 		{
 			StringAuto pps(ctx.m_tempAllocator);
@@ -106,13 +106,15 @@ Error Pps::run(RenderingContext& ctx)
 						"#define FBO_WIDTH %u\n"
 						"#define FBO_HEIGHT %u\n"
 						"#define LUT_SIZE %u.0\n"
-						"#define DBG_ENABLED %u\n",
+						"#define DBG_ENABLED %u\n"
+						"#define DRAW_TO_DEFAULT %u\n",
 				true,
 				m_sharpenEnabled,
 				m_r->getWidth(),
 				m_r->getHeight(),
 				LUT_SIZE,
-				dbgEnabled);
+				dbgEnabled,
+				drawToDefaultFb);
 
 			ANKI_CHECK(getResourceManager().loadResourceToCache(frag, "shaders/Pps.frag.glsl", pps.toCString(), "r_"));
 		}

+ 1 - 1
src/anki/renderer/Pps.h

@@ -44,7 +44,7 @@ private:
 	static const U LUT_SIZE = 16;
 
 	FramebufferPtr m_fb;
-	Array<ShaderResourcePtr, 2> m_frag; ///< One with Dbg and one without
+	Array2d<ShaderResourcePtr, 2, 2> m_frag; ///< One with Dbg and one without
 	Array2d<PipelinePtr, 2, 2> m_ppline; ///< With Dbg, Default FB or not
 	TexturePtr m_rt;
 	Array<ResourceGroupPtr, 2> m_rcGroup; ///< One with Dbg and one without