Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Apr 2010 16:50:13 GMT
From:      bob frazier <bobf@mrp3.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/145586: multimedia/ffmpeg has poor performance on amd64
Message-ID:  <201004091650.o39GoDoj070269@www.freebsd.org>
Resent-Message-ID: <201004091700.o39H0AqL047339@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         145586
>Category:       ports
>Synopsis:       multimedia/ffmpeg has poor performance on amd64
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr 09 17:00:10 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     bob frazier
>Release:        8.0-STABLE
>Organization:
SFT Inc.
>Environment:
FreeBSD hack.SFT.local 8.0-STABLE FreeBSD 8.0-STABLE #0: Wed Apr  7 11:02:24 PDT 2010     root@hack.SFT.local:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
on amd64 platforms the ffmpeg port incorrectly uses MACHINE_CPU and a lack of the text 'sse' or 'mmx' to DISABLE sse and mmx capability.

This is completely unnecessary since ffmpeg's configuration script already works without making these additional checks.

Further it does not follow the standard (which would be to use ARCH) and uses the BUILD platform to make the determination for the TARGET platform's code.

The correct solution would be to either eliminate these checks or patch the Makefile using the patch submitted with this report.  Alternately use ARCH to (correctly) determine whether or not these capabilities should be enabled.

>How-To-Repeat:
On an amd64 platform, clean multimedia/ffmpeg and run 'make configure' and note the text output showing mmx and sse disabled.  Then apply the patch (or remove the appropriate sections from Makefile), clean, and run 'make configure' again.  Note the correct enabling of mmx and sse for amd64.

>Fix:


Patch attached with submission follows:

--- Makefile.orig	2010-03-24 11:44:18.000000000 -0700
+++ Makefile	2010-04-09 09:05:55.000000000 -0700
@@ -111,16 +111,20 @@
 .endif
 
 # sse hardware vector support
 .if (defined(MACHINE_CPU) && ${MACHINE_CPU:Msse} == "sse")
 WITH_BUILTIN_VECTOR=	yes
+.elif (defined(MACHINE_CPU) && ${MACHINE_CPU:Mamd64} == "amd64")
+WITH_BUILTIN_VECTOR=	yes
 .else
 CONFIGURE_ARGS+=	--disable-sse
 .endif
 
 # mmx support
-.if ${MACHINE_CPU:Mmmx} == ""
+.if (defined(MACHINE_CPU) && ${MACHINE_CPU:Mamd64} == "amd64")
+#WITH_BUILTIN_VECTOR=	yes
+.elif ${MACHINE_CPU:Mmmx} == ""
 CONFIGURE_ARGS+=	--disable-mmx
 WITHOUT_BUILTIN_VECTOR=	yes
 .endif
 
 # builtin vector, requires mmx


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004091650.o39GoDoj070269>