summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexLoader_Position.cpp
diff options
context:
space:
mode:
authorTillmann Karras <tilkax@gmail.com>2015-01-19 18:33:08 +0100
committerTillmann Karras <tilkax@gmail.com>2015-01-20 01:51:07 +0100
commit873902b4a3cc40b6a03bef197e54c5165f98d842 (patch)
tree7d7fdc6ddbbdc752c7a2de0750b5c86ddfb06c87 /Source/Core/VideoCommon/VertexLoader_Position.cpp
parent38cb9bbfae0999c9f74fffce6029330659a70df1 (diff)
VertexLoader: remove non-JIT SSE code
Diffstat (limited to 'Source/Core/VideoCommon/VertexLoader_Position.cpp')
-rw-r--r--Source/Core/VideoCommon/VertexLoader_Position.cpp70
1 files changed, 2 insertions, 68 deletions
diff --git a/Source/Core/VideoCommon/VertexLoader_Position.cpp b/Source/Core/VideoCommon/VertexLoader_Position.cpp
index 43e56119ea..3dac5a55b1 100644
--- a/Source/Core/VideoCommon/VertexLoader_Position.cpp
+++ b/Source/Core/VideoCommon/VertexLoader_Position.cpp
@@ -5,8 +5,6 @@
#include <type_traits>
#include "Common/CommonTypes.h"
-#include "Common/CPUDetect.h"
-
#include "VideoCommon/VertexLoader.h"
#include "VideoCommon/VertexLoader_Position.h"
#include "VideoCommon/VertexManagerBase.h"
@@ -28,7 +26,7 @@ template <typename T, int N>
void LOADERDECL Pos_ReadDirect(VertexLoader* loader)
{
static_assert(N <= 3, "N > 3 is not sane!");
- auto const scale = loader->m_posScale[0];;
+ auto const scale = loader->m_posScale;
DataReader dst(g_vertex_manager_write_ptr, nullptr);
DataReader src(g_video_buffer_read_ptr, nullptr);
@@ -49,7 +47,7 @@ void LOADERDECL Pos_ReadIndex(VertexLoader* loader)
auto const index = DataRead<I>();
loader->m_vertexSkip = index == std::numeric_limits<I>::max();
auto const data = reinterpret_cast<const T*>(cached_arraybases[ARRAY_POSITION] + (index * g_main_cp_state.array_strides[ARRAY_POSITION]));
- auto const scale = loader->m_posScale[0];
+ auto const scale = loader->m_posScale;
DataReader dst(g_vertex_manager_write_ptr, nullptr);
for (int i = 0; i < 3; ++i)
@@ -59,28 +57,6 @@ void LOADERDECL Pos_ReadIndex(VertexLoader* loader)
LOG_VTX();
}
-#if _M_SSE >= 0x301
-template <typename T, bool three>
-void LOADERDECL Pos_ReadDirect_SSSE3(VertexLoader* loader)
-{
- const T* pData = reinterpret_cast<const T*>(DataGetPosition());
- Vertex_Read_SSSE3<T, three, true>(pData, *(__m128*)loader->m_posScale);
- DataSkip<(2 + three) * sizeof(T)>();
- LOG_VTX();
-}
-
-template <typename I, typename T, bool three>
-void LOADERDECL Pos_ReadIndex_SSSE3(VertexLoader* loader)
-{
- static_assert(std::is_unsigned<I>::value, "Only unsigned I is sane!");
- auto const index = DataRead<I>();
- loader->m_vertexSkip = index == std::numeric_limits<I>::max();
- const T* pData = (const T*)(cached_arraybases[ARRAY_POSITION] + (index * g_main_cp_state.array_strides[ARRAY_POSITION]));
- Vertex_Read_SSSE3<T, three, true>(pData, *(__m128*)loader->m_posScale);
- LOG_VTX();
-}
-#endif
-
static TPipelineFunction tableReadPosition[4][8][2] = {
{
{nullptr, nullptr,},
@@ -127,48 +103,6 @@ static int tableReadPositionVertexSize[4][8][2] = {
},
};
-
-void VertexLoader_Position::Init()
-{
-
-#if _M_SSE >= 0x301
- if (cpu_info.bSSSE3)
- {
- tableReadPosition[1][0][0] = Pos_ReadDirect_SSSE3<u8, false>;
- tableReadPosition[1][0][1] = Pos_ReadDirect_SSSE3<u8, true>;
- tableReadPosition[1][1][0] = Pos_ReadDirect_SSSE3<s8, false>;
- tableReadPosition[1][1][1] = Pos_ReadDirect_SSSE3<s8, true>;
- tableReadPosition[1][2][0] = Pos_ReadDirect_SSSE3<u16, false>;
- tableReadPosition[1][2][1] = Pos_ReadDirect_SSSE3<u16, true>;
- tableReadPosition[1][3][0] = Pos_ReadDirect_SSSE3<s16, false>;
- tableReadPosition[1][3][1] = Pos_ReadDirect_SSSE3<s16, true>;
- tableReadPosition[1][4][0] = Pos_ReadDirect_SSSE3<float, false>;
- tableReadPosition[1][4][1] = Pos_ReadDirect_SSSE3<float, true>;
- tableReadPosition[2][0][0] = Pos_ReadIndex_SSSE3<u8, u8, false>;
- tableReadPosition[2][0][1] = Pos_ReadIndex_SSSE3<u8, u8, true>;
- tableReadPosition[3][0][0] = Pos_ReadIndex_SSSE3<u16, u8, false>;
- tableReadPosition[3][0][1] = Pos_ReadIndex_SSSE3<u16, u8, true>;
- tableReadPosition[2][1][0] = Pos_ReadIndex_SSSE3<u8, s8, false>;
- tableReadPosition[2][1][1] = Pos_ReadIndex_SSSE3<u8, s8, true>;
- tableReadPosition[3][1][0] = Pos_ReadIndex_SSSE3<u16, s8, false>;
- tableReadPosition[3][1][1] = Pos_ReadIndex_SSSE3<u16, s8, true>;
- tableReadPosition[2][2][0] = Pos_ReadIndex_SSSE3<u8, u16, false>;
- tableReadPosition[2][2][1] = Pos_ReadIndex_SSSE3<u8, u16, true>;
- tableReadPosition[3][2][0] = Pos_ReadIndex_SSSE3<u16, u16, false>;
- tableReadPosition[3][2][1] = Pos_ReadIndex_SSSE3<u16, u16, true>;
- tableReadPosition[2][3][0] = Pos_ReadIndex_SSSE3<u8, s16, false>;
- tableReadPosition[2][3][1] = Pos_ReadIndex_SSSE3<u8, s16, true>;
- tableReadPosition[3][3][0] = Pos_ReadIndex_SSSE3<u16, s16, false>;
- tableReadPosition[3][3][1] = Pos_ReadIndex_SSSE3<u16, s16, true>;
- tableReadPosition[2][4][0] = Pos_ReadIndex_SSSE3<u8, float, false>;
- tableReadPosition[2][4][1] = Pos_ReadIndex_SSSE3<u8, float, true>;
- tableReadPosition[3][4][0] = Pos_ReadIndex_SSSE3<u16, float, false>;
- tableReadPosition[3][4][1] = Pos_ReadIndex_SSSE3<u16, float, true>;
- }
-#endif
-
-}
-
unsigned int VertexLoader_Position::GetSize(u64 _type, unsigned int _format, unsigned int _elements)
{
return tableReadPositionVertexSize[_type][_format][_elements];