Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
0fdf4e2e
Commit
0fdf4e2e
authored
Nov 26, 2011
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
i420_rgb: clobber lists for MMX and SSE2
parent
7abc4fee
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
16 deletions
+21
-16
modules/mmx/i420_rgb_mmx.h
modules/mmx/i420_rgb_mmx.h
+4
-2
modules/video_chroma/i420_rgb16.c
modules/video_chroma/i420_rgb16.c
+17
-14
No files found.
modules/mmx/i420_rgb_mmx.h
View file @
0fdf4e2e
...
@@ -56,7 +56,8 @@ static const uint64_t mmx_mask_fc = 0xfcfcfcfcfcfcfcfcULL; /* -- as %13 */
...
@@ -56,7 +56,8 @@ static const uint64_t mmx_mask_fc = 0xfcfcfcfcfcfcfcfcULL; /* -- as %13 */
"m" (mmx_00ffw), "m" (mmx_Y_coeff), \
"m" (mmx_00ffw), "m" (mmx_Y_coeff), \
"m" (mmx_U_green), "m" (mmx_U_blue), \
"m" (mmx_U_green), "m" (mmx_U_blue), \
"m" (mmx_V_red), "m" (mmx_V_green), \
"m" (mmx_V_red), "m" (mmx_V_green), \
"m" (mmx_mask_f8), "m" (mmx_mask_fc) ); \
"m" (mmx_mask_f8), "m" (mmx_mask_fc) \
: "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7" ); \
} while(0)
} while(0)
#define MMX_END __asm__ __volatile__ ( "emms" )
#define MMX_END __asm__ __volatile__ ( "emms" )
...
@@ -566,7 +567,8 @@ movq %%mm2, 24(%3) # Store ABGR7 ABGR6 \n\
...
@@ -566,7 +567,8 @@ movq %%mm2, 24(%3) # Store ABGR7 ABGR6 \n\
: \
: \
: "r" (p_y), "r" (p_u), \
: "r" (p_y), "r" (p_u), \
"r" (p_v), "r" (p_buffer) \
"r" (p_v), "r" (p_buffer) \
: "eax" ); \
: "eax", "xmm0", "xmm1", "xmm2", "xmm3", \
"xmm4", "xmm5", "xmm6", "xmm7" ); \
} while(0)
} while(0)
#define SSE2_END __asm__ __volatile__ ( "sfence" ::: "memory" )
#define SSE2_END __asm__ __volatile__ ( "sfence" ::: "memory" )
...
...
modules/video_chroma/i420_rgb16.c
View file @
0fdf4e2e
...
@@ -32,14 +32,18 @@
...
@@ -32,14 +32,18 @@
#include <vlc_common.h>
#include <vlc_common.h>
#include <vlc_filter.h>
#include <vlc_filter.h>
#include <vlc_cpu.h>
#include "i420_rgb.h"
#include "i420_rgb.h"
#if defined (MODULE_NAME_IS_i420_rgb)
#if defined (MODULE_NAME_IS_i420_rgb)
# include "i420_rgb_c.h"
# include "i420_rgb_c.h"
# define VLC_TARGET
#elif defined (MODULE_NAME_IS_i420_rgb_mmx)
#elif defined (MODULE_NAME_IS_i420_rgb_mmx)
# include "../mmx/i420_rgb_mmx.h"
# include "../mmx/i420_rgb_mmx.h"
# define VLC_TARGET VLC_MMX
#elif defined (MODULE_NAME_IS_i420_rgb_sse2)
#elif defined (MODULE_NAME_IS_i420_rgb_sse2)
# include "../mmx/i420_rgb_mmx.h"
# include "../mmx/i420_rgb_mmx.h"
# define VLC_TARGET VLC_SSE
#endif
#endif
static
void
SetOffset
(
int
,
int
,
int
,
int
,
bool
*
,
static
void
SetOffset
(
int
,
int
,
int
,
int
,
bool
*
,
...
@@ -202,8 +206,7 @@ void I420_RGB16_dither( filter_t *p_filter, picture_t *p_src,
...
@@ -202,8 +206,7 @@ void I420_RGB16_dither( filter_t *p_filter, picture_t *p_src,
#if defined (MODULE_NAME_IS_i420_rgb)
#if defined (MODULE_NAME_IS_i420_rgb)
void
I420_RGB16
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
void
I420_RGB16
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
picture_t
*
p_dest
)
picture_t
*
p_dest
)
{
{
/* We got this one from the old arguments */
/* We got this one from the old arguments */
uint16_t
*
p_pic
=
(
uint16_t
*
)
p_dest
->
p
->
p_pixels
;
uint16_t
*
p_pic
=
(
uint16_t
*
)
p_dest
->
p
->
p_pixels
;
...
@@ -297,8 +300,8 @@ void I420_RGB16( filter_t *p_filter, picture_t *p_src,
...
@@ -297,8 +300,8 @@ void I420_RGB16( filter_t *p_filter, picture_t *p_src,
#else // ! defined (MODULE_NAME_IS_i420_rgb)
#else // ! defined (MODULE_NAME_IS_i420_rgb)
void
I420_R5G5B5
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
VLC_TARGET
picture_t
*
p_dest
)
void
I420_R5G5B5
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
picture_t
*
p_dest
)
{
{
/* We got this one from the old arguments */
/* We got this one from the old arguments */
uint16_t
*
p_pic
=
(
uint16_t
*
)
p_dest
->
p
->
p_pixels
;
uint16_t
*
p_pic
=
(
uint16_t
*
)
p_dest
->
p
->
p_pixels
;
...
@@ -527,8 +530,8 @@ void I420_R5G5B5( filter_t *p_filter, picture_t *p_src,
...
@@ -527,8 +530,8 @@ void I420_R5G5B5( filter_t *p_filter, picture_t *p_src,
#endif
#endif
}
}
void
I420_R5G6B5
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
VLC_TARGET
picture_t
*
p_dest
)
void
I420_R5G6B5
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
picture_t
*
p_dest
)
{
{
/* We got this one from the old arguments */
/* We got this one from the old arguments */
uint16_t
*
p_pic
=
(
uint16_t
*
)
p_dest
->
p
->
p_pixels
;
uint16_t
*
p_pic
=
(
uint16_t
*
)
p_dest
->
p
->
p_pixels
;
...
@@ -772,8 +775,7 @@ void I420_R5G6B5( filter_t *p_filter, picture_t *p_src,
...
@@ -772,8 +775,7 @@ void I420_R5G6B5( filter_t *p_filter, picture_t *p_src,
#if defined (MODULE_NAME_IS_i420_rgb)
#if defined (MODULE_NAME_IS_i420_rgb)
void
I420_RGB32
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
void
I420_RGB32
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
picture_t
*
p_dest
)
picture_t
*
p_dest
)
{
{
/* We got this one from the old arguments */
/* We got this one from the old arguments */
uint32_t
*
p_pic
=
(
uint32_t
*
)
p_dest
->
p
->
p_pixels
;
uint32_t
*
p_pic
=
(
uint32_t
*
)
p_dest
->
p
->
p_pixels
;
...
@@ -866,6 +868,7 @@ void I420_RGB32( filter_t *p_filter, picture_t *p_src,
...
@@ -866,6 +868,7 @@ void I420_RGB32( filter_t *p_filter, picture_t *p_src,
#else // defined (MODULE_NAME_IS_i420_rgb_mmx) || defined (MODULE_NAME_IS_i420_rgb_sse2)
#else // defined (MODULE_NAME_IS_i420_rgb_mmx) || defined (MODULE_NAME_IS_i420_rgb_sse2)
VLC_TARGET
void
I420_A8R8G8B8
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
void
I420_A8R8G8B8
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
picture_t
*
p_dest
)
picture_t
*
p_dest
)
{
{
...
@@ -1094,8 +1097,8 @@ void I420_A8R8G8B8( filter_t *p_filter, picture_t *p_src,
...
@@ -1094,8 +1097,8 @@ void I420_A8R8G8B8( filter_t *p_filter, picture_t *p_src,
#endif
#endif
}
}
void
I420_R8G8B8A8
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
VLC_TARGET
picture_t
*
p_dest
)
void
I420_R8G8B8A8
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
picture_t
*
p_dest
)
{
{
/* We got this one from the old arguments */
/* We got this one from the old arguments */
uint32_t
*
p_pic
=
(
uint32_t
*
)
p_dest
->
p
->
p_pixels
;
uint32_t
*
p_pic
=
(
uint32_t
*
)
p_dest
->
p
->
p_pixels
;
...
@@ -1322,8 +1325,8 @@ void I420_R8G8B8A8( filter_t *p_filter, picture_t *p_src,
...
@@ -1322,8 +1325,8 @@ void I420_R8G8B8A8( filter_t *p_filter, picture_t *p_src,
#endif
#endif
}
}
void
I420_B8G8R8A8
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
VLC_TARGET
picture_t
*
p_dest
)
void
I420_B8G8R8A8
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
picture_t
*
p_dest
)
{
{
/* We got this one from the old arguments */
/* We got this one from the old arguments */
uint32_t
*
p_pic
=
(
uint32_t
*
)
p_dest
->
p
->
p_pixels
;
uint32_t
*
p_pic
=
(
uint32_t
*
)
p_dest
->
p
->
p_pixels
;
...
@@ -1547,8 +1550,8 @@ void I420_B8G8R8A8( filter_t *p_filter, picture_t *p_src,
...
@@ -1547,8 +1550,8 @@ void I420_B8G8R8A8( filter_t *p_filter, picture_t *p_src,
#endif
#endif
}
}
void
I420_A8B8G8R8
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
VLC_TARGET
picture_t
*
p_dest
)
void
I420_A8B8G8R8
(
filter_t
*
p_filter
,
picture_t
*
p_src
,
picture_t
*
p_dest
)
{
{
/* We got this one from the old arguments */
/* We got this one from the old arguments */
uint32_t
*
p_pic
=
(
uint32_t
*
)
p_dest
->
p
->
p_pixels
;
uint32_t
*
p_pic
=
(
uint32_t
*
)
p_dest
->
p
->
p_pixels
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment