Pārlūkot izejas kodu

Allow updating RO compute buffers.

Branimir Karadžić 8 gadi atpakaļ
vecāks
revīzija
294f15fd5e
3 mainītis faili ar 19 papildinājumiem un 12 dzēšanām
  1. 1 1
      src/bgfx_p.h
  2. 4 4
      tools/texturec/texturec.cpp
  3. 14 7
      tools/texturev/texturev.cpp

+ 1 - 1
src/bgfx_p.h

@@ -2645,7 +2645,7 @@ namespace bgfx
 			BGFX_CHECK_HANDLE("updateDynamicVertexBuffer", m_dynamicVertexBufferHandle, _handle);
 
 			DynamicVertexBuffer& dvb = m_dynamicVertexBuffers[_handle.idx];
-			BX_CHECK(0 == (dvb.m_flags &  BGFX_BUFFER_COMPUTE_READ_WRITE), "Can't update GPU buffer from CPU.");
+			BX_CHECK(0 == (dvb.m_flags &  BGFX_BUFFER_COMPUTE_WRITE), "Can't update GPU write buffer from CPU.");
 
 			if (dvb.m_size < _mem->size
 			&&  0 != (dvb.m_flags & BGFX_BUFFER_ALLOW_RESIZE) )

+ 4 - 4
tools/texturec/texturec.cpp

@@ -305,10 +305,10 @@ namespace bgfx
 			return true;
 
 		default:
-			return imageConvert(_dst, format, _src, TextureFormat::RGBA8, _width, _height);
+			break;
 		}
 
-		return false;
+		return imageConvert(_dst, format, _src, TextureFormat::RGBA8, _width, _height);
 	}
 
 	bool imageEncodeFromRgba32f(bx::AllocatorI* _allocator, void* _dst, const void* _src, uint32_t _width, uint32_t _height, uint8_t _format)
@@ -361,10 +361,10 @@ namespace bgfx
 			return true;
 
 		default:
-			return imageConvert(_dst, format, _src, TextureFormat::RGBA32F, _width, _height);
+			break;
 		}
 
-		return false;
+		return imageConvert(_dst, format, _src, TextureFormat::RGBA32F, _width, _height);
 	}
 
 	void imageRgba32f11to01(void* _dst, uint32_t _width, uint32_t _height, uint32_t _pitch, const void* _src)

+ 14 - 7
tools/texturev/texturev.cpp

@@ -856,13 +856,20 @@ int _main_(int _argc, char** _argv)
 						);
 
 				std::string title;
-				bx::stringPrintf(title, "%s (%d x %d%s, %s)"
-					, filePath
-					, view.m_info.width
-					, view.m_info.height
-					, view.m_info.cubeMap ? " CubeMap" : ""
-					, bgfx::getName(view.m_info.format)
-					);
+				if (isValid(texture) )
+				{
+					bx::stringPrintf(title, "%s (%d x %d%s, %s)"
+						, filePath
+						, view.m_info.width
+						, view.m_info.height
+						, view.m_info.cubeMap ? " CubeMap" : ""
+						, bgfx::getName(view.m_info.format)
+						);
+				}
+				else
+				{
+					bx::stringPrintf(title, "Failed to load %s!", filePath);
+				}
 				entry::WindowHandle handle = { 0 };
 				entry::setWindowTitle(handle, title.c_str() );
 			}