Render3D: Demote some functions and classes to only require AVX instead of AVX2 where appropriate.
This commit is contained in:
parent
96df0343f7
commit
331cfa3596
|
@ -670,8 +670,8 @@ public:
|
|||
void SetUpscalingBuffer(void *upscaleBuffer);
|
||||
};
|
||||
|
||||
#if defined(ENABLE_AVX2)
|
||||
class OpenGLRenderer : public Render3D_AVX2
|
||||
#if defined(ENABLE_AVX)
|
||||
class OpenGLRenderer : public Render3D_AVX
|
||||
#elif defined(ENABLE_SSE2)
|
||||
class OpenGLRenderer : public Render3D_SSE2
|
||||
#elif defined(ENABLE_ALTIVEC)
|
||||
|
|
|
@ -34,7 +34,11 @@
|
|||
#endif
|
||||
|
||||
#ifdef ENABLE_SSE4_1
|
||||
#include "smmintrin.h"
|
||||
#include <smmintrin.h>
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_AVX
|
||||
#include <immintrin.h>
|
||||
#endif
|
||||
|
||||
enum MatrixMode
|
||||
|
@ -155,7 +159,7 @@ FORCEINLINE s32 sfx32_shiftdown(const s64 a)
|
|||
|
||||
// SIMD Functions
|
||||
//-------------
|
||||
#if defined(ENABLE_AVX2)
|
||||
#if defined(ENABLE_AVX)
|
||||
|
||||
static void memset_u16(void *dst, const u16 val, const size_t elementCount)
|
||||
{
|
||||
|
|
|
@ -1419,8 +1419,8 @@ static void* SoftRasterizer_RunClearUsingValues(void *arg)
|
|||
|
||||
static Render3D* SoftRasterizerRendererCreate()
|
||||
{
|
||||
#if defined(ENABLE_AVX2)
|
||||
return new SoftRasterizerRenderer_AVX2;
|
||||
#if defined(ENABLE_AVX)
|
||||
return new SoftRasterizerRenderer_AVX;
|
||||
#elif defined(ENABLE_SSE2)
|
||||
return new SoftRasterizerRenderer_SSE2;
|
||||
#elif defined(ENABLE_ALTIVEC)
|
||||
|
@ -1434,8 +1434,8 @@ static void SoftRasterizerRendererDestroy()
|
|||
{
|
||||
if (CurrentRenderer != BaseRenderer)
|
||||
{
|
||||
#if defined(ENABLE_AVX2)
|
||||
SoftRasterizerRenderer_AVX2 *oldRenderer = (SoftRasterizerRenderer_AVX2 *)CurrentRenderer;
|
||||
#if defined(ENABLE_AVX)
|
||||
SoftRasterizerRenderer_AVX *oldRenderer = (SoftRasterizerRenderer_AVX *)CurrentRenderer;
|
||||
#elif defined(ENABLE_SSE2)
|
||||
SoftRasterizerRenderer_SSE2 *oldRenderer = (SoftRasterizerRenderer_SSE2 *)CurrentRenderer;
|
||||
#elif defined(ENABLE_ALTIVEC)
|
||||
|
@ -2492,7 +2492,7 @@ Render3DError SoftRasterizerRenderer::SetFramebufferSize(size_t w, size_t h)
|
|||
return RENDER3DERROR_NOERR;
|
||||
}
|
||||
|
||||
#if defined(ENABLE_AVX2) || defined(ENABLE_SSE2) || defined(ENABLE_ALTIVEC)
|
||||
#if defined(ENABLE_AVX) || defined(ENABLE_SSE2) || defined(ENABLE_ALTIVEC)
|
||||
|
||||
template <size_t SIMDBYTES>
|
||||
SoftRasterizer_SIMD<SIMDBYTES>::SoftRasterizer_SIMD()
|
||||
|
@ -2604,9 +2604,9 @@ Render3DError SoftRasterizer_SIMD<SIMDBYTES>::SetFramebufferSize(size_t w, size_
|
|||
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_AVX2)
|
||||
#if defined(ENABLE_AVX)
|
||||
|
||||
void SoftRasterizerRenderer_AVX2::LoadClearValues(const FragmentColor &clearColor6665, const FragmentAttributes &clearAttributes)
|
||||
void SoftRasterizerRenderer_AVX::LoadClearValues(const FragmentColor &clearColor6665, const FragmentAttributes &clearAttributes)
|
||||
{
|
||||
this->_clearColor_v256u32 = _mm256_set1_epi32(clearColor6665.color);
|
||||
this->_clearDepth_v256u32 = _mm256_set1_epi32(clearAttributes.depth);
|
||||
|
@ -2618,7 +2618,7 @@ void SoftRasterizerRenderer_AVX2::LoadClearValues(const FragmentColor &clearColo
|
|||
this->_clearAttrPolyFacing_v256u8 = _mm256_set1_epi8(clearAttributes.polyFacing);
|
||||
}
|
||||
|
||||
void SoftRasterizerRenderer_AVX2::ClearUsingValues_Execute(const size_t startPixel, const size_t endPixel)
|
||||
void SoftRasterizerRenderer_AVX::ClearUsingValues_Execute(const size_t startPixel, const size_t endPixel)
|
||||
{
|
||||
for (size_t i = startPixel; i < endPixel; i+=32)
|
||||
{
|
||||
|
|
|
@ -134,8 +134,8 @@ public:
|
|||
template<bool SLI, bool USELINEHACK> FORCEINLINE void Render();
|
||||
};
|
||||
|
||||
#if defined(ENABLE_AVX2)
|
||||
class SoftRasterizerRenderer : public Render3D_AVX2
|
||||
#if defined(ENABLE_AVX)
|
||||
class SoftRasterizerRenderer : public Render3D_AVX
|
||||
#elif defined(ENABLE_SSE2)
|
||||
class SoftRasterizerRenderer : public Render3D_SSE2
|
||||
#elif defined(ENABLE_ALTIVEC)
|
||||
|
@ -218,7 +218,7 @@ template <size_t SIMDBYTES>
|
|||
class SoftRasterizer_SIMD : public SoftRasterizerRenderer
|
||||
{
|
||||
protected:
|
||||
#if defined(ENABLE_AVX2)
|
||||
#if defined(ENABLE_AVX)
|
||||
v256u32 _clearColor_v256u32;
|
||||
v256u32 _clearDepth_v256u32;
|
||||
v256u8 _clearAttrOpaquePolyID_v256u8;
|
||||
|
@ -247,8 +247,8 @@ public:
|
|||
virtual Render3DError SetFramebufferSize(size_t w, size_t h);
|
||||
};
|
||||
|
||||
#if defined(ENABLE_AVX2)
|
||||
class SoftRasterizerRenderer_AVX2 : public SoftRasterizer_SIMD<32>
|
||||
#if defined(ENABLE_AVX)
|
||||
class SoftRasterizerRenderer_AVX : public SoftRasterizer_SIMD<32>
|
||||
{
|
||||
protected:
|
||||
virtual void LoadClearValues(const FragmentColor &clearColor6665, const FragmentAttributes &clearAttributes);
|
||||
|
|
|
@ -773,10 +773,10 @@ Render3DError Render3D_SIMD<SIMDBYTES>::SetFramebufferSize(size_t w, size_t h)
|
|||
return error;
|
||||
}
|
||||
|
||||
#if defined(ENABLE_AVX2) || defined(ENABLE_SSE2)
|
||||
#if defined(ENABLE_AVX) || defined(ENABLE_SSE2)
|
||||
|
||||
#if defined(ENABLE_AVX2)
|
||||
Render3DError Render3D_AVX2::ClearFramebuffer(const GFX3D_State &renderState)
|
||||
#if defined(ENABLE_AVX)
|
||||
Render3DError Render3D_AVX::ClearFramebuffer(const GFX3D_State &renderState)
|
||||
#elif defined(ENABLE_SSE2)
|
||||
Render3DError Render3D_SSE2::ClearFramebuffer(const GFX3D_State &renderState)
|
||||
#endif
|
||||
|
@ -974,7 +974,7 @@ Render3DError Render3D_SSE2::ClearFramebuffer(const GFX3D_State &renderState)
|
|||
return error;
|
||||
}
|
||||
|
||||
#endif // defined(ENABLE_AVX2) || defined(ENABLE_SSE2)
|
||||
#endif // defined(ENABLE_AVX) || defined(ENABLE_SSE2)
|
||||
|
||||
template Render3D_SIMD<16>::Render3D_SIMD();
|
||||
template Render3D_SIMD<32>::Render3D_SIMD();
|
||||
|
|
|
@ -281,9 +281,9 @@ public:
|
|||
virtual Render3DError SetFramebufferSize(size_t w, size_t h);
|
||||
};
|
||||
|
||||
#if defined(ENABLE_AVX2)
|
||||
#if defined(ENABLE_AVX)
|
||||
|
||||
class Render3D_AVX2 : public Render3D_SIMD<32>
|
||||
class Render3D_AVX : public Render3D_SIMD<32>
|
||||
{
|
||||
public:
|
||||
virtual Render3DError ClearFramebuffer(const GFX3D_State &renderState);
|
||||
|
|
|
@ -245,7 +245,7 @@ typedef __m128i v128u32;
|
|||
typedef __m128i v128s32;
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_AVX2
|
||||
#ifdef ENABLE_AVX
|
||||
#include <immintrin.h>
|
||||
typedef __m256i v256u8;
|
||||
typedef __m256i v256s8;
|
||||
|
|
Loading…
Reference in New Issue