Unity (3D)를 사용할 때 12.04의 게임 성능 저하에 대해 어떻게해야합니까?


9

ubuntu 12.04를 새로 설치 한 이후 게임 성능이 크게 떨어졌습니다.

내 PC는 Nvidia Geforce GTX 460, AMD Phenom II X4 965 CPU 및 4GB RAM으로 구성되어 있으며 nvidias 전용 드라이버를 사용합니다.

나는 주로 Linux 클라이언트를 사용하여 Heroes of Newerth를 연기합니다. 우분투 9.10 이후 로이 작업을 수행하며 독점적 인 nvidia 드라이버를 사용할 때 성능 문제가 발생하지 않았습니다. 내 fps는 항상 60의 vsync 프레임 캡으로 최대화되었습니다.

우분투 12.04를 실행 한 이후 약 30-45fps를 얻었고 일반적으로 게임 경험은 매우 게으르다. 우분투 12.04에 기본적으로 슬프게 설치되는 nvidias 295.40 드라이버에 문제가있는 사람들이 많이 있다는 것을 알고 있습니다. 따라서 최신 안정 295.49, 최신 베타 302.07 및 심지어 우분투 11.10에서 사용되는 이전 버전 295.33을 수동으로 설치했습니다 (성능에 문제가 없었습니다). 4 드라이버 버전 모두에서 동일한 성능 문제가 발생했기 때문에 시간 낭비였습니다.

Unity 2D를 사용하면 fps가 60으로 돌아가고 전반적인 게임 성능이 향상됩니다. 따라서 우분투 12.04 버전의 Unity를 실행할 때만 이러한 문제가 있습니다.

또한 홈 디렉토리에서 .config 및 .compiz-1 폴더를 삭제하려고했지만 화합을 사용할 때 여전히 게임 성능이 엉망입니다.

다음에 무엇을 시도해야할지 모르겠습니다. 문제를 추가로 디버깅 할 수있는 방법을 아는 사람이 있습니까? 문제를 더 잘 분석하기 위해 더 많은 데이터를 제공하는 방법은 무엇입니까? 어쩌면 일부 compiz 설정을 사용하여 바이올린을 시도해보십시오.

이 성능 회귀는 정말 실망스럽고 Heroes of Newerth의 Windows 클라이언트를 다운로드하고 이중 부팅으로 돌아가는 것을 생각하고 있습니다.

도움을 주셔서 감사합니다.

답변:


3

실제 솔루션은 아니지만 최소한 Unity 2D를 사용하는 것 외에는 유용한 방법이 될 수 있습니다.

게임을 시작하기 전에 노틸러스 (파일 관리자)를 열고로 이동하십시오 /usr/share/application. 터미널을 metacity --replace열고을 입력 한 다음 Enter 키를 누릅니다. 당황하지 마십시오. Unity 인터페이스는 사라질 것이지만 이것이 나의 의도입니다. 파일 관리자에서 게임을 시작하십시오 (게임 실행기는 내가 언급 한 폴더에 있어야합니다). 게임을 마치면 unity --replace터미널 창에 입력하고 Enter 키를 누릅니다. 이제 데스크탑이 원래 상태로 복원되었습니다.
백그라운드에서 Unity가 실행 중일 수 있으므로 문제가 발생할 수 있습니다.

또한 나는 이것을 버그로보고했다. 확실히 수정해야 할 것입니다. 버그 보고서를 제출할 경우 여기에 링크를 남겨 두어이 문제가 발생하는 다른 사람들이 해당 버그를 "영향을 미침"으로 표시하면 더 빨리 수정 될 수 있습니다.


당신의 답변에 감사드립니다. 이 해결 방법을 시도하고 다시보고하겠습니다. 항상 unity 2d로 로그 아웃했다가 다시 로그인하는 것보다 예쁘지는 않지만 적어도 낫습니다 ... 버그보고에 도움을 주시겠습니까? 자원이나 프로세스에 대한 설명이있는 링크는 이미 많은 도움이 될 것입니다. 감사.

해결 방법에 대해 RobinJ에게 감사합니다. 정말 잘 작동하며 세션을 유지할 수 있기 때문에 unity 2d로 로그 아웃했다가 다시 로그인하는 것보다 낫습니다. 게임 런처로 폴더를 열고 터미널을 열고 metacity --replace &게임을 시작한 후 멋진 성능을 기대합니다. 완료되면 입력 unity --replace하고 모든 것이 정상으로 돌아옵니다. 나는 이제 화합에 대한 버그를 제기하고 그것이 무엇을 가져 오는지 볼 것이다.

@dong 우분투 문서에있는 버그를보고하기위한 안내서가 있습니다 : help.ubuntu.com/community/ReportingBugs
RobinJ

Unity 버그 자체는 아니지만 Compiz 버그입니다. 게임은 나를 위해 compiz와 함께 잘 실행되지 않았습니다 ...
user55822

조금 늦었지만 버그보고는 다음과 같습니다 : unity bug-998141 . 이 영향을받는 경우 버그가 사용자에게 영향을주는 것으로 표시하십시오. 어쩌면 약간의 관심을 끌 수 있습니다.

1

언제든지 304.22 Nvidia Beta 드라이버로 업데이트하여 어떻게되는지 확인할 수 있습니다. Ubuntu 12.04 LTS 및 Nvidia 295.59 버전 및 302.07 버전에서 큰 성능 문제가 발생하여 사소한 문제가 해결되었습니다. 대부분의 문제는 최신 304.22 드라이버를 업데이트하여 해결되었습니다. 이제 GeForce 성능은 Windows XP와 동일하지만 몇 가지 응용 프로그램에서 여전히 사소한 문제가 있지만 상황이 실제로 크게 개선되었습니다. 베타 버전이더라도 최신 Nvidia 드라이버를 항상 사용해야합니다. Nvidia 팀은 최신 커널 및 Ubuntu 롤링 업데이트에서 예기치 않은 문제 및 문제를 일으키는 테스트를 수행하지 않았기 때문에 안정적인 이전 드라이버는 Nvidia 팀에서 테스트하지 않은 것 같습니다.

http://www.geforce.com/drivers/beta-legacy를 얻을 수 있습니다

304.22 드라이버에는 다음과 같은 수많은 대규모 수정 프로그램이 있습니다.

  • 다음 GPU에 대한 지원이 추가되었습니다.
    • 지포스 GTX 680M
      쿼드로 K1000M
      쿼드로 K2000M
  • IncludeImplicitMetaModes X 구성 옵션의 기능이 향상되었습니다.
  • X가 초기화 될 때 여러 디스플레이 장치를 사용하는 경우에도 기본 디스플레이 장치에 대해 암시 적 메타 모드가 추가됩니다.
  • 디스플레이 장치의 모드 풀에 해당 해상도의 모드가없는 경우에도 일반적인 해상도에 대해 암시 적 MetaMode가 추가됩니다.
  • IncludeImplicitMetaModes 구성 옵션의 구문을 확장하여 (예 :
    암시 적 MetaMode 작성에 사용 되는 디스플레이 장치 제어)
  • 자세한 내용은
    README 의 IncludeImplicitMetaModes X 구성 옵션에 대한 설명을 참조하십시오.

  • RandR 1.0 / 1.1 요청의 RRGetScreenInfo 및 RRSetScreenConfig 처리 (예 :`xrandr -q --q1` 및`xrandr --size ...`및`xrandr --orientation ...`)가 처리되도록 수정했습니다. 메타 모드. 이것은 NVIDIA X 드라이버 버전 295.xx 및 이전 버전의 동작이지만 302.xx 릴리스는 단일 RandR 출력 모드에서 작동하기 위해 이러한 RandR 1.0 / 1.1 요청 처리를 변경했습니다.
  • 위와 같은 IncludeImplicitMetaModes 및 RandR 1.0 / 1.1 처리 변경으로 인해 전체 화면 응용 프로그램 (예 : SDL 기반 응용 프로그램, Wine)은 더 많은 해상도를 가져야하며 여러 모니터 구성과 더 잘 상호 작용해야합니다.
  • 정지 상태에서 깨어 난 후 G8x, G9x 및 GT2xx GPU가 검은 화면을 표시하거나 손상 될 수있는 버그가 수정되었습니다.
  • fork (3)를 호출 할 때 일부 OpenGL 프로그램이 중단 될 수있는 몇 가지 버그가 수정되었습니다.
  • --display-device-string 옵션으로 작성된 ProbeDisplays 쿼리 결과의 형식이 잘못되는 엔비디아 설정 버그를 수정했습니다.
  • 디스플레이를 핫 플러그 ​​할 때 nvidia 설정 제어판 업데이트의 응답 성이 향상되었습니다.
  • 일부 변형을 설정할 때, 특히 변형 된 디스플레이를 패닝 할 때 디스플레이가 손상되는 버그를 수정했습니다.
  • 디스플레이를 처음 핫 플러그 ​​할 때 추가 RandR 이벤트가 생성되는 버그가 수정되었습니다.
  • 이름에 '@'이있는 X11 모델을 거부하는 버그가 수정되었습니다.
  • 그래픽 디스플레이의 단일 DisplayPort 커넥터에 여러 디스플레이를 연결할 수있는 DisplayPort 1.2 분기 장치 지원이 추가되었습니다.
  • 컨텍스트가 렌더링을 RGB 오버레이 드로어 블에 바인딩 할 때 대부분의 OpenGL 텍스처 업로드 속도가 느려지는 버그를 수정했습니다.
  • 일부 MCP7x (IGP) GPU에서 X 서버를 다시 시작한 후 HDMI를 통한 오디오가 작동하지 않던 문제를 수정했습니다.
  • 모든 GPU에서 "none"값을 유지하도록 X 구성 옵션 "UseDisplayDevice"를 업데이트했습니다.
  • nvidia-installer에서 DKMS에 대한 지원이 추가되었습니다. DKMS를 통해 커널 모듈을 설치하면 다른 Linux 커널로 변경할 때 모듈을 자동으로 다시 빌드 할 수 있습니다. README 및 nvidia-installer 도움말 텍스트 또는 "--dkms"옵션을 참조하십시오.
  • RandR 출력 속성 _ConnectorLocation, ConnectorNumber, ConnectorType, EDID, _GUID 및 SignalFormat을 추가했습니다. 이러한 속성에 대한 자세한 내용은 README를 참조하십시오.
  • 최대 3 개의 디스플레이로 모든 G80 + SLI 구성에 대한 기본 모자이크 지원을 확장했습니다.
  • 여러 DisplayPort 모니터가 하나의 GPU에 연결된 경우 일부 모니터가 DPMS 일시 중단 모드에서 깨어나지 않던 문제를 수정했습니다.
  • nvidia 설정 제어판의 "X Server XVideo 설정"페이지에서 XVideo 속성에 대한 컨트롤을 제거했습니다. XVideo 속성은 XVideo 플레이어 응용 프로그램 또는 xvattr과 같은 유틸리티를 통해 구성 할 수 있습니다.
  • XVideo 어댑터의 모든 포트가 색상 보정 설정을 공유하는 버그가 수정되었습니다.
  • 다음 X 구성 옵션에 대한 지원이 제거되었습니다.
    • SecondMonitorHorizSync
      SecondMonitorVertRefresh
    NVIDIA HorizSync 및 VertRefresh X 구성 옵션을 통해 유사한 제어 기능을 사용할 수 있습니다. 자세한 내용은 NVIDIA 드라이버 README를 참조하십시오.
  • 다른 VT의 X 서버간에 전환 할 때 NVIDIA 3D Vision Pro가 제대로 작동하지 않던 버그를 수정했습니다.
  • 회전, 반사 또는 변형이 디스플레이 장치에 적용될 때 (RandR 또는 MetaMode 구문을 통해) 데스크탑 패닝에 대한 지원이 추가되었습니다. 이 경우 패닝은 이전에 무시됩니다.

  • 진심으로 당신은 새로운 드라이버를 시도하고 마침내 Windows에서 거의 성능을 얻었습니다 ...

    나는 보통 내 작업 시스템의 베타 단계에 아직 아무것도 사용 싫어하는 아주 많이. 즉, 최신 베타 드라이버가 기본 정확한 12.04 독점 엔비디아 드라이버로 발생한 많은 문제를 해결했음을 확인할 수 있습니다. 소위 '안정적인'드라이버는 나에게 베타 경험과 같았고, 업데이트 된 드라이버는 더 나빴고 (예 : 일시 중지에서 깨어나지 않음) 최신 베타 드라이버 (304.30)는 완벽하게 작동했습니다. 멀리. 이 도움이되고 정교하게 답변 해 주신 +1 님! 대단히 감사합니다!
    FuzzyQ

    304.30 드라이버는 마침내 Windows XP 및 Windows 7 Nvidia 성능 수준과 거의 비슷한 패리티를 갖습니다. Windows와 Linux 모두에서 Nvidia를 사용하면 항상 최첨단을 유지하고 항상 최상의 경험을 위해 드라이버를 드라이버에서 직접

    1

    편집 : X는 이제 xscreensaver를 통해 잠글 수 있습니다

    안녕! 이것을 시도하십시오, 나는 주로 게임을 위해 그것을 사용하여 훌륭한 결과를 얻었습니다! Unity에서 관리하지 않으므로 훌륭한 결과를 얻을 수 있습니다!

    새 X 세션을 생성하고 명령을 실행하거나 터미널을 열어서이 스크립트를 실행할 수있는이 스크립트를 만들었습니다.

    openNewX.sh

    #!/bin/bash
    
    function FUNCisX1running {
      ps -A -o command |grep -v "grep" |grep -q -x "X :1"
    }
    
    useJWM=true
    useKbd=true
    while [[ ${1:0:2} == "--" ]]; do
      if [[ "$1" == "--no-wm" ]]; then #opt SKIP WINDOW MANAGER (run pure X alone)
        useJWM=false
        shift
      elif [[ "$1" == "--no-kbd" ]]; then #opt SKIP Keyboard setup
        useKbd=false
        shift
      elif [[ "$1" == "--isRunning" ]]; then #opt check if new X :1 is already running
        if FUNCisX1running; then
          exit 0
        else
          exit 1
        fi
      elif [[ "$1" == "--help" ]]; then #opt show help info
        echo "usage: options runCommand"
    
        # this sed only cleans lines that have extended options with "--" prefixed
        sedCleanHelpLine='s"\(.*\"\)\(--.*\)\".*#opt" \2"' #helpskip
        grep "#opt" $0 |grep -v "#helpskip" |sed "$sedCleanHelpLine"
    
        exit 0
      else
        #echoc -p "invalid option $1"
        echo "PROBLEM: invalid option $1"
        $0 --help
        exit 1
      fi
    done
    #echo "going to execute: $@"
    #runCmd="$1" #this command must be simple, if need complex put on a script file and call it!
    runCmd="$@" #this command must be simple, if need complex put on a script file and call it!
    
    #if ! echoc -q -t 2 "use JWM window manager@Dy"; then
    #  useJWM=false
    #fi
    
    # run in a thread, prevents I from ctrl+c here what breaks THIS X instace and locks keyb
    if ! FUNCisX1running; then
      xterm -e "\
      echo \"INFO: hit CTRL+C to exit the other X session and close this window\";\
      echo \"INFO: running in a thread (child proccess) to prevent ctrl+c from freezing this X session and the machine!\";\
      echo \"INFO: hit ctrl+alt+f7 to get back to this X session (f7, f8 etc, may vary..)\";\
      echo ;\
      echo \"Going to execute on another X session: $runCmd\";\
      sudo X :1"&
    fi
    #sudo chvt 8 # this line to force go to X :1 terminal
    
    # wait for X to start
    while ! FUNCisX1running; do
      sleep 1
    done
    
    # run in a thread, prevents I from ctrl+c here what breaks THIS X instace and locks keyb
    if $useJWM; then
      if [[ ! -f "$HOME/.jwmrc" ]]; then
        echo '<?xml version="1.0"?><JWM><Key mask="4" key="L">exec:xscreensaver-command --lock</Key></JWM>' \
          >$HOME/.jwmrc
        #if ! jwm -p; then
        #  rm $HOME/.jwmrc
        #  echo ".jwmrc is invalid"
        #else
          echo "see http://joewing.net/programs/jwm/config.shtml#keys"
          echo "with Super+L you can lock the screen now"
        #fi
      fi
    
      jwm -display :1&
    fi
    
    kbdSetup="echo \"SKIP: kbd setup\""
    if $useKbd; then
      kbdSetup="setxkbmap -layout us"
    fi
    
    sleep 2
    
    xscreensaver -display :1&
    
    # setxkbmap is good for games that have console access!; bash is to keep console open!
    
    # nothing
    #xterm -display :1&
    
    # dead keys
    #xterm -display :1 -e "setxkbmap -layout us -variant intl; bash"&
    
    # good for games!
    xterm -display :1 -e "$kbdSetup; bash -c \"$runCmd\"; bash"&
    #xterm -display :1 -e "$kbdSetup; bash -c \"$@\"; bash"&
    

    또한 다음에 추가하십시오 : compiz config settings manager-> 창 규칙-> 닫을 수없는 창 :

    (class=XTerm) & (title=sudo X :1) & (name=xterm)
    

    "창"을 닫으면 현재 X 세션이 정지되므로 터미널을 닫을 수 없습니다 (Ctrl + C를 사용하여 다른 X 세션과 터미널을 닫을 수 있습니다).

    그것은 당신이 Alt + TAB 전체 화면 문제가 아니라 alt + 전체 화면 문제가 없다는 장점이 있습니다; Urban Terror (linux native)에서 Wine로 실행되는 게임에 이르기까지 모든 3D 게임을 더욱 안정적으로 실행할 수 있습니다! Quake를 사용하여 Firefox와 같은 3D 게임을 실행하는 일부 브라우저도!

    Obs .: jwm 패키지를 설치하고 싶을 수도 있지만 필요하지 않은 창 관리가 필요한 경우에는 차이가 있습니다.

    추신 : 물론 향상 될 수 있습니다. 계획은 옵션에 키보드 설정을 추가하는 것이지만 매우 느리게 수행합니다.) 누군가가 그것을 개선 / 정리하면 게시하여 스크립트를 업데이트 할 수 있습니다 :)


    0

    Unity 3D를 사용할 때 많은 3D 효과 등이 활성화되어 있습니까? (큐브, 데스크탑 애니메이션, 메뉴 효과 등)이 기능은 우수한 컴퓨터에서도 성능을 저하시킬 수 있습니다.

    엔비디아 설정을 확인하는 것이 좋습니다. 대시에서 '엔비디아'를 검색하면 찾을 수 있습니다. 지연이 발생하기 전에 엔비디아 설정을 약간 조정해야한다는 것을 알고 있습니다.

    게임 설정을 확인하고 조금 변경하고 fps가 얼마나 변경되는지 확인하십시오.

    Ubuntu의 최신 업데이트를 확인하십시오. 때로는 문제를 해결할 수 있지만 경우에 따라 도움이 될 것으로 기대하지는 않습니다.


    당신의 답변에 감사드립니다. 이 설치에서 cciz가 설치되어 있지 않은 compiz 설정을 변경하지 않았으므로 설치에 대한 모든 것은 새로 설치 한 후 얻을 수있는 재고 Unity 3D입니다. 큐브, 불타는 창문, 아무것도 없습니다. 게임 내 설정 정보 : Heroes of Newerth의 우분투 11.10 이상에서 현재와 동일한 설정으로 모든 것이 원활하게 실행되고 있음을 알고 있습니다. 나의 목표는 이것을 다시 달성하는 것입니다. 당신이 이미 상상했듯이, 나는 이미 공식 저장소에서 우분투에 대한 모든 최신 업데이트를 설치했습니다. 다른 ppa는 추가되지 않았습니다.

    NVIDIA 설정에서 정확히 무엇을 변경할 수 있습니까? 성능 향상을 위해 무엇을 바꿀 수 있는지 알 수 없습니다.

    VSYNC, AA 및 AF 등 다양한 것들에 대한 설정은 또한 중 하나에서 그래픽 성능 슬라이더가 있습니다 설정 영역의 그 @dong보고 가치가있을 수 있습니다
    nisshh
    당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
    Licensed under cc by-sa 3.0 with attribution required.