Loading gfx/2d/ssse3-scaler.c +7 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ #include <tmmintrin.h> #include <stdint.h> #include <assert.h> #include "ssse3-scaler.h" typedef int32_t pixman_fixed_16_16_t; typedef pixman_fixed_16_16_t pixman_fixed_t; Loading Loading @@ -505,7 +506,7 @@ fail: /* scale the src from src_width/height to dest_width/height drawn * into the rectangle x,y width,height * src_stride and dst_stride are 4 byte units */ void ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stride, bool ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stride, uint32_t *dest, int dest_width, int dest_height, int dest_stride, int x, int y, Loading Loading @@ -551,6 +552,10 @@ void ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stri iter.data = NULL; ssse3_bilinear_cover_iter_init(&iter); if (!iter.fini) return false; if (iter.data) { for (int iy = 0; iy < height; iy++) { ssse3_fetch_bilinear_cover(&iter, NULL); Loading @@ -558,4 +563,5 @@ void ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stri } ssse3_bilinear_cover_iter_fini(&iter); } return true; } gfx/2d/ssse3-scaler.h +3 −1 Original line number Diff line number Diff line Loading @@ -7,10 +7,12 @@ #ifndef MOZILLA_GFX_2D_SSSE3_SCALER_H_ #define MOZILLA_GFX_2D_SSSE3_SCALER_H_ #include <stdbool.h> #ifdef __cplusplus extern "C" { #endif void ssse3_scale_data(uint32_t *src, int src_width, int src_height, bool ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stride, uint32_t *dest, int dest_width, int dest_height, int dest_rowstride, Loading gfx/layers/basic/BasicCompositor.cpp +7 −7 Original line number Diff line number Diff line Loading @@ -557,7 +557,7 @@ AttemptVideoScale(TextureSourceBasic* aSource, const SourceSurface* aSourceMask, RefPtr<DataSourceSurface> srcSource = aSource->GetSurface(aDest)->GetDataSurface(); DataSourceSurface::ScopedMap mapSrc(srcSource, DataSourceSurface::READ); ssse3_scale_data((uint32_t*)mapSrc.GetData(), srcSource->GetSize().width, srcSource->GetSize().height, bool success = ssse3_scale_data((uint32_t*)mapSrc.GetData(), srcSource->GetSize().width, srcSource->GetSize().height, mapSrc.GetStride()/4, ((uint32_t*)dstData) + fillRect.X() + (dstStride / 4) * fillRect.Y(), dstRect.Width(), dstRect.Height(), dstStride / 4, Loading @@ -565,7 +565,7 @@ AttemptVideoScale(TextureSourceBasic* aSource, const SourceSurface* aSourceMask, fillRect.Width(), fillRect.Height()); aDest->ReleaseBits(dstData); return true; return success; } else #endif // MOZILLA_SSE_HAVE_CPUID_DETECTION return false; Loading Loading
gfx/2d/ssse3-scaler.c +7 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ #include <tmmintrin.h> #include <stdint.h> #include <assert.h> #include "ssse3-scaler.h" typedef int32_t pixman_fixed_16_16_t; typedef pixman_fixed_16_16_t pixman_fixed_t; Loading Loading @@ -505,7 +506,7 @@ fail: /* scale the src from src_width/height to dest_width/height drawn * into the rectangle x,y width,height * src_stride and dst_stride are 4 byte units */ void ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stride, bool ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stride, uint32_t *dest, int dest_width, int dest_height, int dest_stride, int x, int y, Loading Loading @@ -551,6 +552,10 @@ void ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stri iter.data = NULL; ssse3_bilinear_cover_iter_init(&iter); if (!iter.fini) return false; if (iter.data) { for (int iy = 0; iy < height; iy++) { ssse3_fetch_bilinear_cover(&iter, NULL); Loading @@ -558,4 +563,5 @@ void ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stri } ssse3_bilinear_cover_iter_fini(&iter); } return true; }
gfx/2d/ssse3-scaler.h +3 −1 Original line number Diff line number Diff line Loading @@ -7,10 +7,12 @@ #ifndef MOZILLA_GFX_2D_SSSE3_SCALER_H_ #define MOZILLA_GFX_2D_SSSE3_SCALER_H_ #include <stdbool.h> #ifdef __cplusplus extern "C" { #endif void ssse3_scale_data(uint32_t *src, int src_width, int src_height, bool ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stride, uint32_t *dest, int dest_width, int dest_height, int dest_rowstride, Loading
gfx/layers/basic/BasicCompositor.cpp +7 −7 Original line number Diff line number Diff line Loading @@ -557,7 +557,7 @@ AttemptVideoScale(TextureSourceBasic* aSource, const SourceSurface* aSourceMask, RefPtr<DataSourceSurface> srcSource = aSource->GetSurface(aDest)->GetDataSurface(); DataSourceSurface::ScopedMap mapSrc(srcSource, DataSourceSurface::READ); ssse3_scale_data((uint32_t*)mapSrc.GetData(), srcSource->GetSize().width, srcSource->GetSize().height, bool success = ssse3_scale_data((uint32_t*)mapSrc.GetData(), srcSource->GetSize().width, srcSource->GetSize().height, mapSrc.GetStride()/4, ((uint32_t*)dstData) + fillRect.X() + (dstStride / 4) * fillRect.Y(), dstRect.Width(), dstRect.Height(), dstStride / 4, Loading @@ -565,7 +565,7 @@ AttemptVideoScale(TextureSourceBasic* aSource, const SourceSurface* aSourceMask, fillRect.Width(), fillRect.Height()); aDest->ReleaseBits(dstData); return true; return success; } else #endif // MOZILLA_SSE_HAVE_CPUID_DETECTION return false; Loading