Как скомпилировать mplayer с sse3 ?

Не смотря на прописывание флагов в /etc/make.conf и /etc/portage/package.use, mplayer не хочет работать с sse3

htpc ~ # cat /etc/make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
CFLAGS="-march=nocona -O2 -pipe"
CXXFLAGS="${CFLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="x86_64-pc-linux-gnu"
# These are the USE flags that were used in addition to what is provided by the
# profile used for building.
USE="3dnow directfb fbcon fbcondecor fbdev mmx sse sse2 sse3 ssse3 unicode -X
     -gnome -kde -xscreensaver -xv"
MAKEOPT="-j5"
GENTOO_MIRRORS="ftp://unix.miet.ru/pub/linux/gentoo/ http://mirror.yandex.ru/gentoo-distfiles http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
VIDEO_CARDS="vesa"
htpc ~ # cat /etc/portage/package.use
net-wireless/wpa_supplicant madwifi
sys-apps/lm_sensors sensord
net-p2p/rtorrent xmlrpc
media-video/mplayer --enable-3dnow
media-video/mplayer --enable-sse3
media-video/mplayer --enable-ssse3
media-video/mplayer --menu

а в результате всё равно :(

htpc ~ # mplayer
MPlayer 1.0rc2-4.1.2 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Atom(TM) CPU  330   @ 1.60GHz (Family: 6, Model: 28, Stepping: 2)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2

Что не так делаю?

хм... а разве ТАК поймет

хм... а разве ТАК поймет через /etc/portage/package.use ?
это же USE-флаги
USE="3dnow 3dnowext sse sse2 ssse3"
и соответствующим образом в /etc/portage/package.use заносить
media-video/mplayer 3dnow 3dnowext sse sse2 ssse3 ...
хотя в это - 3dnow 3dnowext sse sse2 я в make.conf поставил. потому как эти флаги полезны не только mplayer'у

P.S.: Linux - это красная таблетка :-) Windows - синяя...

Попробуй с USE-флагом

Попробуй с USE-флагом "custom-cpuopts".

прочитать handbook на тему

  • прочитать handbook на тему package.use
  • man portage
  • убедитьс с помошью x86info или /proc/cpuinfo что проц знает про этот набор иструкций

___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

из /proc/cpuinfo flags

из /proc/cpuinfo

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl pni monitor ds_cpl tm2 ssse3 cx16 xtpr lahf_lm

sse3 нет, есть только ssse3, а это разные вещи

хотя, если верить интеловской документации(*), sse3 в Intel Atom N330 есть.
Видимо вопрос встал серьезнее - поддержка sse3 ядром

* http://download.intel.com/design/processor/datashts/320528.pdf

ssse3 и sse3 это одно и

ssse3 и sse3 это одно и тоже.
Так что работать будет

___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

Из русской Википедии: Цитата:

Из русской Википедии:

Цитата:
Инструкции SSE3

* ADDSUBPD (Add Subtract Packed Double).
* ADDSUBPS (Add Subtract Packed Single).
* HADDPD (Horizontal Add Packed Double).
* HADDPS (Horizontal Add Packed Single).
* HSUBPD (Horizontal Subtract Packed Double).
* HSUBPS (Horizontal Subtract Packed Single).
* FISTTP — преобразование вещественного числа в целое с сохранением целочисленного значения и округлением в сторону нуля.
* LDDQU — загрузка 128bit невыровненных данных из памяти в регистр xmm, с предотвращением пересечения границы строки кеша.

Из английской Википедии (про SSSE3)

Цитата:
PSIGNB, PSIGNW, PSIGND
Packed Sign
Negate the elements of a register of bytes, words or dwords if the sign of the corresponding elements of another register is negative.

PABSB, PABSW, PABSD
Packed Absolute Value
Fill the elements of a register of bytes, words or dwords with the absolute values of the elements of another register

PALIGNR
Packed Align Right
take two registers, concatenate their values, and pull out a register-length section from an offset given by an immediate value encoded in the instruction.

PSHUFB
Packed Shuffle Bytes
takes registers of bytes A = [a0 a1 a2 ...] and B = [b0 b1 b2 ...] and replaces A with [ab0 ab1 ab2 ...]; except that it replaces the ith entry with 0 if the top bit of bi is set.

PMULHRSW
Packed Multiply High with Round and Scale
treat the sixteen-bit words in registers A and B as signed 15-bit fixed-point numbers between -1 and 1 (eg 0x4000 is treated as 0.5 and 0xa000 as -0.75), and multiply them together with correct rounding.

PMADDUBSW
Multiply and Add Packed Signed and Unsigned Bytes
Take the bytes in registers A and B, multiply them together, add pairs, signed-saturate and store. IE [a0 a1 a2 ...] pmaddubsw [b0 b1 b2 ...] = [satsw(a0b0+a1b1) satsw(a2b2+a3b3) ...]

PHSUBW, PHSUBD
Packed Horizontal Subtract (Words or Doublewords)
takes registers A = [a0 a1 a2 ...] and B = [b0 b1 b2 ...] and outputs [a0-a1 a2-a3 ... b0-b1 b2-b3 ...]

PHSUBSW
Packed Horizontal Subtract and Saturate Words
like PHSUBW, but outputs [satsw(a0-a1) satsw(a2-a3) ... satsw(b0-b1) satsw(b2-b3) ...]

PHADDW, PHADDD
Packed Horizontal Add (Words or Doublewords)
takes registers A = [a0 a1 a2 ...] and B = [b0 b1 b2 ...] and outputs [a0+a1 a2+a3 ... b0+b1 b2+b3 ...]

PHADDSW
Packed Horizontal Add and Saturate Words
like PHADDW, but outputs [satsw(a0+a1) satsw(a2+a3) ... satsw(b0+b1) satsw(b2+b3) ...]

Ядро определяет SSE3 как pni

Ядро определяет SSE3 как pni (Prescott New Instructions) - оно там есть.

по monitor еще можно

по monitor еще можно определить наличие sse3 - эта инструкция только там появилась (алсо если есть ssse3, то sse3 точно присутствует, - разные поколения процессоров же)

А как узнать, пользует ли

А как узнать, пользует ли mplayer pni?

CPUflags: MMX: 1 MMX2: 1

CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1

имхо это говорит о том, что мплеер не видит поддержки вашим процессором sse3

вот у меня к примеру

CPU: Intel(R) Core(TM)2 Duo CPU     T7500  @ 2.20GHz (Family: 6, Model: 15, Stepping: 11)
extended cpuid-level: 8
...
Testing OS support for SSE... yes.
Tests of OS support for SSE passed.
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNowExt: 0 SSE: 1 SSE2: 1 SSSE3: 1
Скомпилировано для x86 CPU со следующими расширениями: MMX MMX2 SSE SSE2 SSSE3 CMOV

cpuinfo у меня такое:

flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm ida tpr_shadow vnmi flexpriority

а вот флаги такие: CFLAGS="-O3 -march=native -mtune=native -fomit-frame-pointer -mmmx -msse -msse2 -msse3 -mssse3 -mfpmath=sse -ftree-vectorize -pipe"

к чему я это -
возможно configure на этапе конфигурации тоже что-то проверяет, а не только --enable-xxx
в общем я бы на вашем месте поставил в CFLAGS на подобии моих и попробовал собрать (внимательно смотрите как проходит configure)

а вот что это за
Testing OS support for SSE... yes.
Tests of OS support for SSE passed.
честно говоря не врублюсь...

зыЖ и уберите 3dnow из use

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".