diff options
| author | Markus Wick <markus+github@selfnet.de> | 2015-01-20 09:40:46 +0100 |
|---|---|---|
| committer | Markus Wick <markus+github@selfnet.de> | 2015-01-20 09:40:46 +0100 |
| commit | 8ff1dc9c8787935a5115ee771cf351f8691db104 (patch) | |
| tree | 55b2771ca221951c07f51f3bb126e22db9c86aa7 /Source/Core/VideoCommon/VertexLoader_TextCoord.cpp | |
| parent | 6f61f90dab4c82afb38b8e3c27e4740671250841 (diff) | |
| parent | 1dcf49237b81b850d5683887e3608fbab8c54b27 (diff) | |
Merge pull request #1925 from Tilka/vertex_loader_jit
VertexLoaderX64: fix alpha of indirect 8888 colors
Diffstat (limited to 'Source/Core/VideoCommon/VertexLoader_TextCoord.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/VertexLoader_TextCoord.cpp | 58 |
1 files changed, 2 insertions, 56 deletions
diff --git a/Source/Core/VideoCommon/VertexLoader_TextCoord.cpp b/Source/Core/VideoCommon/VertexLoader_TextCoord.cpp index 6e807a46e8..69e8ca155e 100644 --- a/Source/Core/VideoCommon/VertexLoader_TextCoord.cpp +++ b/Source/Core/VideoCommon/VertexLoader_TextCoord.cpp @@ -5,8 +5,6 @@ #include <type_traits> #include "Common/CommonTypes.h" -#include "Common/CPUDetect.h" - #include "VideoCommon/VertexLoader.h" #include "VideoCommon/VertexLoader_TextCoord.h" #include "VideoCommon/VertexManagerBase.h" @@ -49,7 +47,7 @@ float TCScale(float val, float scale) template <typename T, int N> void LOADERDECL TexCoord_ReadDirect(VertexLoader* loader) { - auto const scale = loader->m_tcScale[loader->m_tcIndex][0]; + auto const scale = loader->m_tcScale[loader->m_tcIndex]; DataReader dst(g_vertex_manager_write_ptr, nullptr); DataReader src(g_video_buffer_read_ptr, nullptr); @@ -71,7 +69,7 @@ void LOADERDECL TexCoord_ReadIndex(VertexLoader* loader) auto const index = DataRead<I>(); auto const data = reinterpret_cast<const T*>(cached_arraybases[ARRAY_TEXCOORD0 + loader->m_tcIndex] + (index * g_main_cp_state.array_strides[ARRAY_TEXCOORD0 + loader->m_tcIndex])); - auto const scale = loader->m_tcScale[loader->m_tcIndex][0]; + auto const scale = loader->m_tcScale[loader->m_tcIndex]; DataReader dst(g_vertex_manager_write_ptr, nullptr); for (int i = 0; i != N; ++i) @@ -82,32 +80,6 @@ void LOADERDECL TexCoord_ReadIndex(VertexLoader* loader) ++loader->m_tcIndex; } -#if _M_SSE >= 0x301 -template <typename T> -void LOADERDECL TexCoord_ReadDirect2_SSSE3(VertexLoader* loader) -{ - const T* pData = reinterpret_cast<const T*>(DataGetPosition()); - __m128 scale = _mm_castsi128_ps(_mm_loadl_epi64((__m128i*)loader->m_tcScale[loader->m_tcIndex])); - Vertex_Read_SSSE3<T, false, false>(pData, scale); - DataSkip<2 * sizeof(T)>(); - LOG_TEX<2>(); - loader->m_tcIndex++; -} - -template <typename I, typename T> -void LOADERDECL TexCoord_ReadIndex2_SSSE3(VertexLoader* loader) -{ - static_assert(std::is_unsigned<I>::value, "Only unsigned I is sane!"); - - auto const index = DataRead<I>(); - const T* pData = (const T*)(cached_arraybases[ARRAY_TEXCOORD0 + loader->m_tcIndex] + (index * g_main_cp_state.array_strides[ARRAY_TEXCOORD0 + loader->m_tcIndex])); - __m128 scale = _mm_castsi128_ps(_mm_loadl_epi64((__m128i*)loader->m_tcScale[loader->m_tcIndex])); - Vertex_Read_SSSE3<T, false, false>(pData, scale); - LOG_TEX<2>(); - loader->m_tcIndex++; -} -#endif - static TPipelineFunction tableReadTexCoord[4][8][2] = { { {nullptr, nullptr,}, @@ -154,32 +126,6 @@ static int tableReadTexCoordVertexSize[4][8][2] = { }, }; -void VertexLoader_TextCoord::Init() -{ - -#if _M_SSE >= 0x301 - if (cpu_info.bSSSE3) - { - tableReadTexCoord[1][0][1] = TexCoord_ReadDirect2_SSSE3<u8>; - tableReadTexCoord[1][1][1] = TexCoord_ReadDirect2_SSSE3<s8>; - tableReadTexCoord[1][2][1] = TexCoord_ReadDirect2_SSSE3<u16>; - tableReadTexCoord[1][3][1] = TexCoord_ReadDirect2_SSSE3<s16>; - tableReadTexCoord[1][4][1] = TexCoord_ReadDirect2_SSSE3<float>; - tableReadTexCoord[2][0][1] = TexCoord_ReadIndex2_SSSE3<u8, u8>; - tableReadTexCoord[2][1][1] = TexCoord_ReadIndex2_SSSE3<u8, s8>; - tableReadTexCoord[2][2][1] = TexCoord_ReadIndex2_SSSE3<u8, u16>; - tableReadTexCoord[2][3][1] = TexCoord_ReadIndex2_SSSE3<u8, s16>; - tableReadTexCoord[2][4][1] = TexCoord_ReadIndex2_SSSE3<u8, float>; - tableReadTexCoord[3][0][1] = TexCoord_ReadIndex2_SSSE3<u16, u8>; - tableReadTexCoord[3][1][1] = TexCoord_ReadIndex2_SSSE3<u16, s8>; - tableReadTexCoord[3][2][1] = TexCoord_ReadIndex2_SSSE3<u16, u16>; - tableReadTexCoord[3][3][1] = TexCoord_ReadIndex2_SSSE3<u16, s16>; - tableReadTexCoord[3][4][1] = TexCoord_ReadIndex2_SSSE3<u16, float>; - } -#endif - -} - unsigned int VertexLoader_TextCoord::GetSize(u64 _type, unsigned int _format, unsigned int _elements) { return tableReadTexCoordVertexSize[_type][_format][_elements]; |
