diff options
| author | Pierre Bourdon <delroth@gmail.com> | 2014-02-28 23:08:56 +0100 |
|---|---|---|
| committer | Pierre Bourdon <delroth@gmail.com> | 2014-02-28 23:08:56 +0100 |
| commit | bc844a168fe54174cd4de04e17ef23849e1fcccb (patch) | |
| tree | 1293208fb1072c1f13cdf16006190a18a7882dfd /Source/Core/VideoCommon | |
| parent | 1a7e3b3227070fcac6499e6e9eaa8d8ad3ef3e49 (diff) | |
| parent | 892012dc02d13229e88db1809f7b785fc3516787 (diff) | |
Merge pull request #100 from Tilka/misc_fixes
Misc fixes
Diffstat (limited to 'Source/Core/VideoCommon')
| -rw-r--r-- | Source/Core/VideoCommon/BPFunctions.cpp | 1 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/FPSCounter.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/Fifo.cpp | 1 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/ImageWrite.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/ImageWrite.h | 2 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/TextureCacheBase.cpp | 13 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/TextureCacheBase.h | 2 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/TextureConversionShader.cpp | 34 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/TextureDecoder_x64.cpp | 7 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/VertexLoader.cpp | 28 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/VertexLoader.h | 9 |
11 files changed, 47 insertions, 54 deletions
diff --git a/Source/Core/VideoCommon/BPFunctions.cpp b/Source/Core/VideoCommon/BPFunctions.cpp index a3bcd3af30..1149392179 100644 --- a/Source/Core/VideoCommon/BPFunctions.cpp +++ b/Source/Core/VideoCommon/BPFunctions.cpp @@ -14,7 +14,6 @@ #include "VideoCommon/VertexShaderManager.h" #include "VideoCommon/VideoConfig.h" -const bool renderFog = false; namespace BPFunctions { // ---------------------------------------------- diff --git a/Source/Core/VideoCommon/FPSCounter.cpp b/Source/Core/VideoCommon/FPSCounter.cpp index cdf7c1d85f..59a67e002a 100644 --- a/Source/Core/VideoCommon/FPSCounter.cpp +++ b/Source/Core/VideoCommon/FPSCounter.cpp @@ -32,7 +32,7 @@ static void LogFPSToFile(unsigned long val) s_bench_file.Open(File::GetUserPath(D_LOGS_IDX) + "fps.txt", "w"); char buffer[256]; - snprintf(buffer, 256, "%ld\n", val); + snprintf(buffer, 256, "%lu\n", val); s_bench_file.WriteArray(buffer, strlen(buffer)); } diff --git a/Source/Core/VideoCommon/Fifo.cpp b/Source/Core/VideoCommon/Fifo.cpp index 9e3f615291..233f1e8109 100644 --- a/Source/Core/VideoCommon/Fifo.cpp +++ b/Source/Core/VideoCommon/Fifo.cpp @@ -70,6 +70,7 @@ void Fifo_Shutdown() { if (GpuRunningState) PanicAlert("Fifo shutting down while active"); FreeMemoryPages(videoBuffer, FIFO_SIZE); + videoBuffer = NULL; } u8* GetVideoBufferStartPtr() diff --git a/Source/Core/VideoCommon/ImageWrite.cpp b/Source/Core/VideoCommon/ImageWrite.cpp index ad0449dd2f..a3c9dec86a 100644 --- a/Source/Core/VideoCommon/ImageWrite.cpp +++ b/Source/Core/VideoCommon/ImageWrite.cpp @@ -26,7 +26,7 @@ Inputs: data : This is an array of RGBA with 8 bits per channel. 4 bytes for each pixel. row_stride: Determines the amount of bytes per row of pixels. */ -bool TextureToPng(u8* data, int row_stride, const std::string filename, int width, int height, bool saveAlpha) +bool TextureToPng(u8* data, int row_stride, const std::string& filename, int width, int height, bool saveAlpha) { bool success = false; diff --git a/Source/Core/VideoCommon/ImageWrite.h b/Source/Core/VideoCommon/ImageWrite.h index 5df630651a..b46dc1376f 100644 --- a/Source/Core/VideoCommon/ImageWrite.h +++ b/Source/Core/VideoCommon/ImageWrite.h @@ -7,4 +7,4 @@ #include "Common/Common.h" bool SaveData(const char* filename, const char* pdata); -bool TextureToPng(u8* data, int row_stride, const std::string filename, int width, int height, bool saveAlpha = true); +bool TextureToPng(u8* data, int row_stride, const std::string& filename, int width, int height, bool saveAlpha = true); diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index 5abce6fdee..9ea6fae5ad 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -73,11 +73,8 @@ void TextureCache::Invalidate() TextureCache::~TextureCache() { Invalidate(); - if (temp) - { - FreeAlignedMemory(temp); - temp = NULL; - } + FreeAlignedMemory(temp); + temp = NULL; } void TextureCache::OnConfigChanged(VideoConfig& config) @@ -238,11 +235,11 @@ bool TextureCache::CheckForCustomTextureLODs(u64 tex_hash, int texformat, unsign for (unsigned int level = 1; level < levels; ++level) { - sprintf(texPathTemp, "%s_mip%i", texBasePathTemp, level); + sprintf(texPathTemp, "%s_mip%u", texBasePathTemp, level); if (!HiresTextures::HiresTexExists(texPathTemp)) { if (level > 1) - WARN_LOG(VIDEO, "Couldn't find custom texture LOD with index %i (filename: %s), disabling custom LODs for this texture", level, texPathTemp); + WARN_LOG(VIDEO, "Couldn't find custom texture LOD with index %u (filename: %s), disabling custom LODs for this texture", level, texPathTemp); return false; } @@ -260,7 +257,7 @@ PC_TexFormat TextureCache::LoadCustomTexture(u64 tex_hash, int texformat, unsign if (level == 0) sprintf(texPathTemp, "%s_%08x_%i", SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str(), tex_hash_u32, texformat); else - sprintf(texPathTemp, "%s_%08x_%i_mip%i", SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str(), tex_hash_u32, texformat, level); + sprintf(texPathTemp, "%s_%08x_%i_mip%u", SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str(), tex_hash_u32, texformat, level); unsigned int required_size = 0; PC_TexFormat ret = HiresTextures::GetHiresTex(texPathTemp, &newWidth, &newHeight, &required_size, texformat, temp_size, temp); diff --git a/Source/Core/VideoCommon/TextureCacheBase.h b/Source/Core/VideoCommon/TextureCacheBase.h index 517f45433d..f66726f478 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.h +++ b/Source/Core/VideoCommon/TextureCacheBase.h @@ -72,7 +72,7 @@ public: virtual ~TCacheEntryBase(); virtual void Bind(unsigned int stage) = 0; - virtual bool Save(const std::string filename, unsigned int level) = 0; + virtual bool Save(const std::string& filename, unsigned int level) = 0; virtual void Load(unsigned int width, unsigned int height, unsigned int expanded_width, unsigned int level) = 0; diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp index 47f9df21ba..1564afa338 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.cpp +++ b/Source/Core/VideoCommon/TextureConversionShader.cpp @@ -141,13 +141,13 @@ void WriteToBitDepth(char*& p, u8 depth, const char* src, const char* dest) WRITE(p, " %s = floor(%s * 255.0 / exp2(8.0 - %d.0));\n", dest, src, depth); } -void WriteEncoderEnd(char* p, API_TYPE ApiType) +void WriteEncoderEnd(char*& p, API_TYPE ApiType) { WRITE(p, "}\n"); IntensityConstantAdded = false; } -void WriteI8Encoder(char* p, API_TYPE ApiType) +void WriteI8Encoder(char*& p, API_TYPE ApiType) { WriteSwizzler(p, GX_TF_I8, ApiType); WRITE(p, " float3 texSample;\n"); @@ -169,7 +169,7 @@ void WriteI8Encoder(char* p, API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteI4Encoder(char* p, API_TYPE ApiType) +void WriteI4Encoder(char*& p, API_TYPE ApiType) { WriteSwizzler(p, GX_TF_I4, ApiType); WRITE(p, " float3 texSample;\n"); @@ -210,7 +210,7 @@ void WriteI4Encoder(char* p, API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteIA8Encoder(char* p,API_TYPE ApiType) +void WriteIA8Encoder(char*& p,API_TYPE ApiType) { WriteSwizzler(p, GX_TF_IA8, ApiType); WRITE(p, " float4 texSample;\n"); @@ -228,7 +228,7 @@ void WriteIA8Encoder(char* p,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteIA4Encoder(char* p,API_TYPE ApiType) +void WriteIA4Encoder(char*& p,API_TYPE ApiType) { WriteSwizzler(p, GX_TF_IA4, ApiType); WRITE(p, " float4 texSample;\n"); @@ -260,7 +260,7 @@ void WriteIA4Encoder(char* p,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteRGB565Encoder(char* p,API_TYPE ApiType) +void WriteRGB565Encoder(char*& p,API_TYPE ApiType) { WriteSwizzler(p, GX_TF_RGB565, ApiType); @@ -283,7 +283,7 @@ void WriteRGB565Encoder(char* p,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteRGB5A3Encoder(char* p,API_TYPE ApiType) +void WriteRGB5A3Encoder(char*& p,API_TYPE ApiType) { WriteSwizzler(p, GX_TF_RGB5A3, ApiType); @@ -349,7 +349,7 @@ void WriteRGB5A3Encoder(char* p,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteRGBA4443Encoder(char* p,API_TYPE ApiType) +void WriteRGBA4443Encoder(char*& p,API_TYPE ApiType) { WriteSwizzler(p, GX_TF_RGB5A3, ApiType); @@ -373,7 +373,7 @@ void WriteRGBA4443Encoder(char* p,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteRGBA8Encoder(char* p,API_TYPE ApiType) +void WriteRGBA8Encoder(char*& p,API_TYPE ApiType) { WriteSwizzler(p, GX_TF_RGBA8, ApiType); @@ -398,7 +398,7 @@ void WriteRGBA8Encoder(char* p,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteC4Encoder(char* p, const char* comp,API_TYPE ApiType) +void WriteC4Encoder(char*& p, const char* comp,API_TYPE ApiType) { WriteSwizzler(p, GX_CTF_R4, ApiType); WRITE(p, " float4 color0;\n"); @@ -420,7 +420,7 @@ void WriteC4Encoder(char* p, const char* comp,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteC8Encoder(char* p, const char* comp,API_TYPE ApiType) +void WriteC8Encoder(char*& p, const char* comp,API_TYPE ApiType) { WriteSwizzler(p, GX_CTF_R8, ApiType); @@ -432,7 +432,7 @@ void WriteC8Encoder(char* p, const char* comp,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteCC4Encoder(char* p, const char* comp,API_TYPE ApiType) +void WriteCC4Encoder(char*& p, const char* comp,API_TYPE ApiType) { WriteSwizzler(p, GX_CTF_RA4, ApiType); WRITE(p, " float2 texSample;\n"); @@ -462,7 +462,7 @@ void WriteCC4Encoder(char* p, const char* comp,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteCC8Encoder(char* p, const char* comp, API_TYPE ApiType) +void WriteCC8Encoder(char*& p, const char* comp, API_TYPE ApiType) { WriteSwizzler(p, GX_CTF_RA8, ApiType); @@ -472,7 +472,7 @@ void WriteCC8Encoder(char* p, const char* comp, API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteZ8Encoder(char* p, const char* multiplier,API_TYPE ApiType) +void WriteZ8Encoder(char*& p, const char* multiplier,API_TYPE ApiType) { WriteSwizzler(p, GX_CTF_Z8M, ApiType); @@ -493,7 +493,7 @@ void WriteZ8Encoder(char* p, const char* multiplier,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteZ16Encoder(char* p,API_TYPE ApiType) +void WriteZ16Encoder(char*& p,API_TYPE ApiType) { WriteSwizzler(p, GX_TF_Z16, ApiType); @@ -525,7 +525,7 @@ void WriteZ16Encoder(char* p,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteZ16LEncoder(char* p,API_TYPE ApiType) +void WriteZ16LEncoder(char*& p,API_TYPE ApiType) { WriteSwizzler(p, GX_CTF_Z16L, ApiType); @@ -561,7 +561,7 @@ void WriteZ16LEncoder(char* p,API_TYPE ApiType) WriteEncoderEnd(p, ApiType); } -void WriteZ24Encoder(char* p, API_TYPE ApiType) +void WriteZ24Encoder(char*& p, API_TYPE ApiType) { WriteSwizzler(p, GX_TF_Z24X8, ApiType); diff --git a/Source/Core/VideoCommon/TextureDecoder_x64.cpp b/Source/Core/VideoCommon/TextureDecoder_x64.cpp index d00a9bb454..875ba8f8e2 100644 --- a/Source/Core/VideoCommon/TextureDecoder_x64.cpp +++ b/Source/Core/VideoCommon/TextureDecoder_x64.cpp @@ -177,13 +177,6 @@ int TexDecoder_GetPaletteSize(int format) } } -static inline u32 decodeIA8(u16 val) -{ - int a = val >> 8; - int i = val & 0xFF; - return (a << 24) | (i << 16) | (i << 8) | i; -} - static inline u32 decode5A3(u16 val) { int r,g,b,a; diff --git a/Source/Core/VideoCommon/VertexLoader.cpp b/Source/Core/VideoCommon/VertexLoader.cpp index a9bdb468b8..29abdb227c 100644 --- a/Source/Core/VideoCommon/VertexLoader.cpp +++ b/Source/Core/VideoCommon/VertexLoader.cpp @@ -28,11 +28,6 @@ //BBox #include "VideoCommon/XFMemory.h" -#ifndef _M_GENERIC -#ifndef __APPLE__ -#define USE_JIT -#endif -#endif #define COMPILED_CODE_SIZE 4096 @@ -472,7 +467,6 @@ VertexLoader::VertexLoader(const TVtxDesc &vtx_desc, const VAT &vtx_attr) m_compiledCode = NULL; m_numLoadedVertices = 0; m_VertexSize = 0; - m_numPipelineStages = 0; m_NativeFmt = 0; loop_counter = 0; VertexLoader_Normal::Init(); @@ -482,11 +476,12 @@ VertexLoader::VertexLoader(const TVtxDesc &vtx_desc, const VAT &vtx_attr) m_VtxDesc = vtx_desc; SetVAT(vtx_attr.g0.Hex, vtx_attr.g1.Hex, vtx_attr.g2.Hex); - #ifdef USE_JIT + #ifdef USE_VERTEX_LOADER_JIT AllocCodeSpace(COMPILED_CODE_SIZE); CompileVertexTranslator(); WriteProtect(); #else + m_numPipelineStages = 0; CompileVertexTranslator(); #endif @@ -494,7 +489,7 @@ VertexLoader::VertexLoader(const TVtxDesc &vtx_desc, const VAT &vtx_attr) VertexLoader::~VertexLoader() { - #ifdef USE_JIT + #ifdef USE_VERTEX_LOADER_JIT FreeCodeSpace(); #endif delete m_NativeFmt; @@ -505,7 +500,7 @@ void VertexLoader::CompileVertexTranslator() m_VertexSize = 0; const TVtxAttr &vtx_attr = m_VtxAttr; -#ifdef USE_JIT +#ifdef USE_VERTEX_LOADER_JIT if (m_compiledCode) PanicAlert("Trying to recompile a vertex translator"); @@ -531,6 +526,9 @@ void VertexLoader::CompileVertexTranslator() WriteSetVariable(32, &s_texmtxwrite, Imm32(0)); WriteSetVariable(32, &s_texmtxread, Imm32(0)); } +#else + // Reset pipeline + m_numPipelineStages = 0; #endif // Colors @@ -544,8 +542,6 @@ void VertexLoader::CompileVertexTranslator() m_VtxDesc.Tex4Coord, m_VtxDesc.Tex5Coord, m_VtxDesc.Tex6Coord, (const u32)((m_VtxDesc.Hex >> 31) & 3) }; - // Reset pipeline - m_numPipelineStages = 0; u32 components = 0; // Position in pc vertex format. @@ -770,7 +766,7 @@ void VertexLoader::CompileVertexTranslator() native_stride = nat_offset; vtx_decl.stride = native_stride; -#ifdef USE_JIT +#ifdef USE_VERTEX_LOADER_JIT // End loop here #ifdef _M_X64 MOV(64, R(RAX), Imm64((u64)&loop_counter)); @@ -790,7 +786,7 @@ void VertexLoader::CompileVertexTranslator() void VertexLoader::WriteCall(TPipelineFunction func) { -#ifdef USE_JIT +#ifdef USE_VERTEX_LOADER_JIT #ifdef _M_X64 MOV(64, R(RAX), Imm64((u64)func)); CALLptr(R(RAX)); @@ -805,7 +801,7 @@ void VertexLoader::WriteCall(TPipelineFunction func) #ifndef _M_GENERIC void VertexLoader::WriteGetVariable(int bits, OpArg dest, void *address) { -#ifdef USE_JIT +#ifdef USE_VERTEX_LOADER_JIT #ifdef _M_X64 MOV(64, R(RAX), Imm64((u64)address)); MOV(bits, dest, MatR(RAX)); @@ -817,7 +813,7 @@ void VertexLoader::WriteGetVariable(int bits, OpArg dest, void *address) void VertexLoader::WriteSetVariable(int bits, void *address, OpArg value) { -#ifdef USE_JIT +#ifdef USE_VERTEX_LOADER_JIT #ifdef _M_X64 MOV(64, R(RAX), Imm64((u64)address)); MOV(bits, MatR(RAX), value); @@ -870,7 +866,7 @@ void VertexLoader::SetupRunVertices(int vtx_attr_group, int primitive, int const void VertexLoader::ConvertVertices ( int count ) { -#ifdef USE_JIT +#ifdef USE_VERTEX_LOADER_JIT if (count > 0) { loop_counter = count; diff --git a/Source/Core/VideoCommon/VertexLoader.h b/Source/Core/VideoCommon/VertexLoader.h index 6b720b54aa..01c4bb0acd 100644 --- a/Source/Core/VideoCommon/VertexLoader.h +++ b/Source/Core/VideoCommon/VertexLoader.h @@ -17,6 +17,11 @@ #include "VideoCommon/DataReader.h" #include "VideoCommon/NativeVertexFormat.h" +#ifndef _M_GENERIC +#ifndef __APPLE__ +#define USE_VERTEX_LOADER_JIT +#endif +#endif class VertexLoaderUID { @@ -119,9 +124,11 @@ private: NativeVertexFormat *m_NativeFmt; int native_stride; - // Pipeline. To be JIT compiled in the future. +#ifndef USE_VERTEX_LOADER_JIT + // Pipeline. TPipelineFunction m_PipelineStages[64]; // TODO - figure out real max. it's lower. int m_numPipelineStages; +#endif const u8 *m_compiledCode; |
