summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexLoader_TextCoord.cpp
diff options
context:
space:
mode:
authorMarkus Wick <markus+github@selfnet.de>2015-01-20 09:40:46 +0100
committerMarkus Wick <markus+github@selfnet.de>2015-01-20 09:40:46 +0100
commit8ff1dc9c8787935a5115ee771cf351f8691db104 (patch)
tree55b2771ca221951c07f51f3bb126e22db9c86aa7 /Source/Core/VideoCommon/VertexLoader_TextCoord.cpp
parent6f61f90dab4c82afb38b8e3c27e4740671250841 (diff)
parent1dcf49237b81b850d5683887e3608fbab8c54b27 (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.cpp58
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];