Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
58dd2253
Commit
58dd2253
authored
Aug 04, 2012
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Check for SSSE3 at build time if possible
parent
6f7ffd31
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
24 additions
and
19 deletions
+24
-19
include/vlc_cpu.h
include/vlc_cpu.h
+7
-1
modules/codec/avcodec/avcodec.c
modules/codec/avcodec/avcodec.c
+1
-1
modules/codec/avcodec/copy.c
modules/codec/avcodec/copy.c
+7
-1
modules/codec/avcodec/encoder.c
modules/codec/avcodec/encoder.c
+1
-1
modules/stream_out/switcher.c
modules/stream_out/switcher.c
+2
-2
modules/video_filter/deinterlace/algo_yadif.c
modules/video_filter/deinterlace/algo_yadif.c
+1
-1
modules/video_filter/gradfun.c
modules/video_filter/gradfun.c
+1
-1
src/misc/cpu.c
src/misc/cpu.c
+3
-5
src/posix/linux_cpu.c
src/posix/linux_cpu.c
+1
-6
No files found.
include/vlc_cpu.h
View file @
58dd2253
...
...
@@ -36,7 +36,7 @@ VLC_API unsigned vlc_CPU(void);
# define VLC_CPU_SSE 64
# define VLC_CPU_SSE2 128
# define VLC_CPU_SSE3 256
# define
CPU_CAPABILITY_SSSE3 (1<<9)
# define
VLC_CPU_SSSE3 512
# define CPU_CAPABILITY_SSE4_1 (1<<10)
# define CPU_CAPABILITY_SSE4_2 (1<<11)
# define CPU_CAPABILITY_SSE4A (1<<12)
...
...
@@ -79,6 +79,12 @@ VLC_API unsigned vlc_CPU(void);
# define vlc_CPU_SSE3() ((vlc_CPU() & VLC_CPU_SSE3) != 0)
# endif
# ifdef __SSSE3__
# define vlc_CPU_SSSE3() (1)
# else
# define vlc_CPU_SSSE3() ((vlc_CPU() & VLC_CPU_SSSE3) != 0)
# endif
# elif defined (__ppc__) || defined (__ppc64__) || defined (__powerpc__)
# define HAVE_FPU 1
# define VLC_CPU_ALTIVEC 2
...
...
modules/codec/avcodec/avcodec.c
View file @
58dd2253
...
...
@@ -347,7 +347,7 @@ static int OpenDecoder( vlc_object_t *p_this )
p_context
->
dsp_mask
|=
AV_CPU_FLAG_SSE3
;
# endif
# ifdef AV_CPU_FLAG_SSSE3
if
(
!
(
i_cpu
&
CPU_CAPABILITY_SSSE3
)
)
if
(
!
vlc_CPU_SSE3
(
)
)
p_context
->
dsp_mask
|=
AV_CPU_FLAG_SSSE3
;
# endif
# ifdef AV_CPU_FLAG_SSE4
...
...
modules/codec/avcodec/copy.c
View file @
58dd2253
...
...
@@ -47,6 +47,11 @@
store " %%xmm4, 48(%[dst])\n" \
: : [dst]"r"(dstp), [src]"r"(srcp) : "memory")
#ifndef __SSSE3__
# undef vlc_CPU_SSSE3
# define vlc_CPU_SSSE3() ((cpu & VLC_CPU_SSSE3) != 0)
#endif
/* Execute the instruction op only if SSE2 is supported. */
#ifdef CAN_COMPILE_SSE2
# ifdef __SSE2__
...
...
@@ -180,7 +185,8 @@ static void SplitUV(uint8_t *dstu, size_t dstu_pitch,
"movhpd %%xmm3, 24(%[dst2])\n"
#ifdef CAN_COMPILE_SSSE3
if
(
cpu
&
CPU_CAPABILITY_SSSE3
)
{
if
(
vlc_CPU_SSE3
())
{
for
(
x
=
0
;
x
<
(
width
&
~
31
);
x
+=
32
)
{
asm
volatile
(
"movdqu (%[shuffle]), %%xmm7
\n
"
...
...
modules/codec/avcodec/encoder.c
View file @
58dd2253
...
...
@@ -341,7 +341,7 @@ int OpenEncoder( vlc_object_t *p_this )
p_context
->
dsp_mask
|=
AV_CPU_FLAG_SSE3
;
# endif
# ifdef AV_CPU_FLAG_SSSE3
if
(
!
(
i_cpu
&
CPU_CAPABILITY_SSSE3
)
)
if
(
!
vlc_CPU_SSSE3
(
)
)
p_context
->
dsp_mask
|=
AV_CPU_FLAG_SSSE3
;
# endif
# ifdef AV_CPU_FLAG_SSE4
...
...
modules/stream_out/switcher.c
View file @
58dd2253
...
...
@@ -396,7 +396,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
id
->
ff_enc_c
->
dsp_mask
|=
AV_CPU_FLAG_SSE3
;
# endif
# ifdef AV_CPU_FLAG_SSSE3
if
(
!
(
i_cpu
&
CPU_CAPABILITY_SSSE3
)
)
if
(
!
vlc_CPU_SSSE3
(
)
)
id
->
ff_enc_c
->
dsp_mask
|=
AV_CPU_FLAG_SSSE3
;
# endif
# ifdef AV_CPU_FLAG_SSE4
...
...
@@ -817,7 +817,7 @@ static mtime_t VideoCommand( sout_stream_t *p_stream, sout_stream_id_t *id )
id
->
ff_enc_c
->
dsp_mask
|=
AV_CPU_FLAG_SSE3
;
# endif
# ifdef AV_CPU_FLAG_SSSE3
if
(
!
(
i_cpu
&
CPU_CAPABILITY_SSSE3
)
)
if
(
!
vlc_CPU_SSSE3
(
)
)
id
->
ff_enc_c
->
dsp_mask
|=
AV_CPU_FLAG_SSSE3
;
# endif
# ifdef AV_CPU_FLAG_SSE4
...
...
modules/video_filter/deinterlace/algo_yadif.c
View file @
58dd2253
...
...
@@ -109,7 +109,7 @@ int RenderYadif( filter_t *p_filter, picture_t *p_dst, picture_t *p_src,
int
w
,
int
prefs
,
int
mrefs
,
int
parity
,
int
mode
);
#if defined(HAVE_YADIF_SSSE3)
if
(
vlc_CPU
()
&
CPU_CAPABILITY_SSSE3
)
if
(
vlc_CPU
_SSSE3
()
)
filter
=
yadif_filter_line_ssse3
;
else
#endif
...
...
modules/video_filter/gradfun.c
View file @
58dd2253
...
...
@@ -141,7 +141,7 @@ static int Open(vlc_object_t *object)
#endif
cfg
->
blur_line
=
blur_line_c
;
#if HAVE_SSSE3
if
(
vlc_CPU
()
&
CPU_CAPABILITY_SSSE3
)
if
(
vlc_CPU
_SSSE3
()
)
cfg
->
filter_line
=
filter_line_ssse3
;
else
#endif
...
...
src/misc/cpu.c
View file @
58dd2253
...
...
@@ -242,11 +242,9 @@ void vlc_CPU_init (void)
i_capabilities
|=
VLC_CPU_SSE3
;
# endif
# if defined (__SSSE3__)
i_capabilities
|=
CPU_CAPABILITY_SSSE3
;
# elif defined (CAN_COMPILE_SSSE3)
# if defined (CAN_COMPILE_SSSE3)
if
((
i_ecx
&
0x00000200
)
&&
vlc_CPU_check
(
"SSSE3"
,
SSSE3_test
))
i_capabilities
|=
CPU_CAPABILITY
_SSSE3
;
i_capabilities
|=
VLC_CPU
_SSSE3
;
# endif
# if defined (__SSE4_1__)
...
...
@@ -346,7 +344,7 @@ void vlc_CPU_dump (vlc_object_t *obj)
if
(
vlc_CPU_SSE
())
p
+=
sprintf
(
p
,
"SSE "
);;
if
(
vlc_CPU_SSE2
())
p
+=
sprintf
(
p
,
"SSE2 "
);;
if
(
vlc_CPU_SSE3
())
p
+=
sprintf
(
p
,
"SSE2 "
);;
PRINT_CAPABILITY
(
CPU_CAPABILITY_SSSE3
,
"SSSE3"
)
;
if
(
vlc_CPU_SSSE3
())
p
+=
sprintf
(
p
,
"SSSE3 "
);
;
PRINT_CAPABILITY
(
CPU_CAPABILITY_SSE4_1
,
"SSE4.1"
);
PRINT_CAPABILITY
(
CPU_CAPABILITY_SSE4_2
,
"SSE4.2"
);
PRINT_CAPABILITY
(
CPU_CAPABILITY_SSE4A
,
"SSE4A"
);
...
...
src/posix/linux_cpu.c
View file @
58dd2253
...
...
@@ -77,10 +77,8 @@ static void vlc_CPU_init (void)
core_caps
|=
VLC_CPU_SSE2
;
if
(
!
strcmp
(
cap
,
"pni"
))
core_caps
|=
VLC_CPU_SSE3
;
# ifndef __SSSE3__
if
(
!
strcmp
(
cap
,
"ssse3"
))
core_caps
|=
CPU_CAPABILITY_SSSE3
;
# endif
core_caps
|=
VLC_CPU_SSSE3
;
# ifndef __SSE4_1__
if
(
!
strcmp
(
cap
,
"sse4_1"
))
core_caps
|=
CPU_CAPABILITY_SSE4_1
;
...
...
@@ -113,9 +111,6 @@ static void vlc_CPU_init (void)
/* Always enable capabilities that were forced during compilation */
#if defined (__i386__) || defined (__x86_64__)
# ifdef __SSSE3__
all_caps
|=
CPU_CAPABILITY_SSSE3
;
# endif
# ifdef __SSE4_1__
all_caps
|=
CPU_CAPABILITY_SSE4_1
;
# endif
...
...
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