diff --git a/src/r_drawers.cpp b/src/r_drawers.cpp index ab45ad939..66cbdd750 100644 --- a/src/r_drawers.cpp +++ b/src/r_drawers.cpp @@ -106,6 +106,7 @@ extern "C" void TriDrawNormal8_10_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); void TriDrawNormal8_11_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); void TriDrawNormal8_12_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); + void TriDrawNormal8_13_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); void TriDrawNormal32_0_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); void TriDrawNormal32_1_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); void TriDrawNormal32_2_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); @@ -133,6 +134,7 @@ extern "C" void TriFillNormal8_10_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); void TriFillNormal8_11_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); void TriFillNormal8_12_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); + void TriFillNormal8_13_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); void TriFillNormal32_0_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); void TriFillNormal32_1_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); void TriFillNormal32_2_SSE2(const TriDrawTriangleArgs *, WorkerThreadData *); @@ -286,6 +288,7 @@ Drawers::Drawers() TriDrawNormal8.push_back(TriDrawNormal8_10_SSE2); TriDrawNormal8.push_back(TriDrawNormal8_11_SSE2); TriDrawNormal8.push_back(TriDrawNormal8_12_SSE2); + TriDrawNormal8.push_back(TriDrawNormal8_13_SSE2); TriDrawNormal32.push_back(TriDrawNormal32_0_SSE2); TriDrawNormal32.push_back(TriDrawNormal32_1_SSE2); TriDrawNormal32.push_back(TriDrawNormal32_2_SSE2); @@ -299,6 +302,7 @@ Drawers::Drawers() TriDrawNormal32.push_back(TriDrawNormal32_10_SSE2); TriDrawNormal32.push_back(TriDrawNormal32_11_SSE2); TriDrawNormal32.push_back(TriDrawNormal32_12_SSE2); + TriDrawNormal32.push_back(TriDrawNormal32_13_SSE2); TriFillNormal8.push_back(TriFillNormal8_0_SSE2); TriFillNormal8.push_back(TriFillNormal8_1_SSE2); TriFillNormal8.push_back(TriFillNormal8_2_SSE2); @@ -312,6 +316,7 @@ Drawers::Drawers() TriFillNormal8.push_back(TriFillNormal8_10_SSE2); TriFillNormal8.push_back(TriFillNormal8_11_SSE2); TriFillNormal8.push_back(TriFillNormal8_12_SSE2); + TriFillNormal8.push_back(TriFillNormal8_13_SSE2); TriFillNormal32.push_back(TriFillNormal32_0_SSE2); TriFillNormal32.push_back(TriFillNormal32_1_SSE2); TriFillNormal32.push_back(TriFillNormal32_2_SSE2); @@ -325,6 +330,7 @@ Drawers::Drawers() TriFillNormal32.push_back(TriFillNormal32_10_SSE2); TriFillNormal32.push_back(TriFillNormal32_11_SSE2); TriFillNormal32.push_back(TriFillNormal32_12_SSE2); + TriFillNormal32.push_back(TriFillNormal32_13_SSE2); TriDrawSubsector8.push_back(TriDrawSubsector8_0_SSE2); TriDrawSubsector8.push_back(TriDrawSubsector8_1_SSE2); TriDrawSubsector8.push_back(TriDrawSubsector8_2_SSE2); @@ -338,6 +344,7 @@ Drawers::Drawers() TriDrawSubsector8.push_back(TriDrawSubsector8_10_SSE2); TriDrawSubsector8.push_back(TriDrawSubsector8_11_SSE2); TriDrawSubsector8.push_back(TriDrawSubsector8_12_SSE2); + TriDrawSubsector8.push_back(TriDrawSubsector8_13_SSE2); TriDrawSubsector32.push_back(TriDrawSubsector32_0_SSE2); TriDrawSubsector32.push_back(TriDrawSubsector32_1_SSE2); TriDrawSubsector32.push_back(TriDrawSubsector32_2_SSE2); @@ -351,6 +358,7 @@ Drawers::Drawers() TriDrawSubsector32.push_back(TriDrawSubsector32_10_SSE2); TriDrawSubsector32.push_back(TriDrawSubsector32_11_SSE2); TriDrawSubsector32.push_back(TriDrawSubsector32_12_SSE2); + TriDrawSubsector32.push_back(TriDrawSubsector32_13_SSE2); TriFillSubsector8.push_back(TriFillSubsector8_0_SSE2); TriFillSubsector8.push_back(TriFillSubsector8_1_SSE2); TriFillSubsector8.push_back(TriFillSubsector8_2_SSE2); @@ -364,6 +372,7 @@ Drawers::Drawers() TriFillSubsector8.push_back(TriFillSubsector8_10_SSE2); TriFillSubsector8.push_back(TriFillSubsector8_11_SSE2); TriFillSubsector8.push_back(TriFillSubsector8_12_SSE2); + TriFillSubsector8.push_back(TriFillSubsector8_13_SSE2); TriFillSubsector32.push_back(TriFillSubsector32_0_SSE2); TriFillSubsector32.push_back(TriFillSubsector32_1_SSE2); TriFillSubsector32.push_back(TriFillSubsector32_2_SSE2); @@ -377,6 +386,7 @@ Drawers::Drawers() TriFillSubsector32.push_back(TriFillSubsector32_10_SSE2); TriFillSubsector32.push_back(TriFillSubsector32_11_SSE2); TriFillSubsector32.push_back(TriFillSubsector32_12_SSE2); + TriFillSubsector32.push_back(TriFillSubsector32_13_SSE2); TriStencil = TriStencil_SSE2; TriStencilClose = TriStencilClose_SSE2; } diff --git a/tools/drawergen/fixedfunction/drawercodegen.cpp b/tools/drawergen/fixedfunction/drawercodegen.cpp index a4ad1a941..ccff40ac0 100644 --- a/tools/drawergen/fixedfunction/drawercodegen.cpp +++ b/tools/drawergen/fixedfunction/drawercodegen.cpp @@ -165,5 +165,5 @@ SSAVec4i DrawerCodegen::blend_add_srccolor_oneminussrccolor(SSAVec4i fg, SSAVec4 { SSAVec4i fgcolor = fg + (fg >> 7); // 255 -> 256 SSAVec4i inv_fgcolor = SSAVec4i(256) - fgcolor; - return fg + (bg * inv_fgcolor + 128) >> 8; + return fg + ((bg * inv_fgcolor + 128) >> 8); }