diff options
| author | Tillmann Karras <tilkax@gmail.com> | 2015-01-19 18:33:08 +0100 |
|---|---|---|
| committer | Tillmann Karras <tilkax@gmail.com> | 2015-01-20 01:51:07 +0100 |
| commit | 873902b4a3cc40b6a03bef197e54c5165f98d842 (patch) | |
| tree | 7d7fdc6ddbbdc752c7a2de0750b5c86ddfb06c87 /Source/Core/VideoCommon/VertexLoader_Position.cpp | |
| parent | 38cb9bbfae0999c9f74fffce6029330659a70df1 (diff) | |
VertexLoader: remove non-JIT SSE code
Diffstat (limited to 'Source/Core/VideoCommon/VertexLoader_Position.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/VertexLoader_Position.cpp | 70 |
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]; |
