배그 최적화 본문

Programming

배그 최적화

쩡호 2018. 1. 19. 14:26

모든 것보다 먼저, 램은 반드시 듀얼채널로 구성하세요.


똑같은 용량 / 똑같은 대역폭을 가진 램을 메인보드에 꽂으시면 됩니다.


램슬롯이 두개라면 나란히 꽂으시면 되고, 램슬롯이 네 개라면 1번과 3번 / 혹은 2번과 4번 - 이렇게 띄엄하게


꽂으시면 듀얼채널로 작동합니다. 용량이 다르거나 대역폭이 다르면 완벽한 듀얼채널로 작동하지 않습니다.


가급적이면 제조회사도 같으면 더 좋습니다(필수 조건은 아님). 듀얼채널 램 구성으로 프레임도 상승시킬 수 있고


교전시 프레임도 안정적으로 유지됩니다. 꼭 듀얼채널로 구성해주세요.




엔비디아 제어판 설정은 기존과 동일합니다. 혹시 필요하실지 모르니 이미지 첨부합니다.


%EC%97%94%EB%B9%84%EB%94%94%EC%95%84%EC%A0%9C%EC%96%B4%ED%8C%90.png?type=w740


이대로 설정하시면 됩니다.




그럼 이번엔 스팀런처 시작 설정 명령어 입니다.


스팀런처 시작시 설정 명령어 넣는 방법은 이미 다 아실테지만, 간략하게 설명드리면


%EB%B0%B0%EA%B7%B8%EC%86%8D%EC%84%B1.png?type=w740


이렇게해서 속성을 클릭하시면 다른 화면이 나옵니다.



%EB%B0%B0%EA%B7%B8%EC%86%8D%EC%84%B12.png?type=w740




그리고 저 명령줄 입력란에 이렇게 넣으시면 됩니다.


-refresh 144 -heapsize 1572864 -d3d9 -maxMem=7168 -maxVram=2560 -high -USEALLAVAILABLECORES -cpuPause 4 -threads 4 -malloc=system -force-feature-level-11-0



간략한 설명을 드리자면,


-refresh 숫자 : 모니터 주사율을 숫자에 넣으시면 됩니다. 60hz 모니터는 -refresh 60


-heapsize 1572864 : 그대로 적으시면 됩니다. 하프라이프 시절부터 사용된 동적 메모리 기본 할당 명령어.


-d3d9 : 다이렉트X 9버전으로 게임 구동시키는 명령어. 그림자를 다 삭제하고 음영을 없애서 적을 발견하기 쉽게 하시려면

-d3d9 대신 -d3d10 입력하시면 됩니다. 그래픽은 -d3d9 쪽이 압도적으로 이쁩니다.

참고로 -d3d10 으로 배그 실행시, 프레임 상승이 안됩니다. 이 글대로 프레임 상승 효과를 보시려면 -d3d9 으로 하세요.


-maxMem=7168 : 이 부분에 대해서 해외 스팀 게임 레딧 사이트들을 검색해보니, PC에 장착된 최대 메모리량을 적으면

된다는 이야기부터, (최대 메모리 - 1) 해서 적어야된다는 이야기도 있고, (최대 메모리 / 2) 한 것을

기준으로 해야된다는 이야기까지 의견이 분분하더군요.

헌데 배틀그라운드 해외 포럼란을 뒤져봤더니 이런 게시물이 있더군요.

http://forums.playbattlegrounds.com/topic/8975-best-launch-options/


이 게시물의 대화에 의하면, 해외 유저들은 대부분 (자신의 메모리량 - 1 ) x 1024를 입력해 사용 중인걸

알 수 있습니다. 1gb 를 제외하는 이유는 윈도우 시스템이 점유하는 메모리량을 1gb로 추정하기 때문이더군요.


즉, 기존의 512mb를 기준으로 하는 계산법보다 (자신의 메모리 GB숫자 - 1) 에다가 1024를 곱해서

입력하는게 더 합리적이라고 판단해서 그렇게 수정해서 테스트를 해봤습니다. 그 결과는 대성공.


-maxVram=2560 : 이것은 그래픽카드에 장착된 비디오램을 배틀그라운드 전용으로 할당하는 명령어 입니다.

이 명령어에 관심을 가지게 된 것은 maxMem 명령어 관련하여 검색을 하다가 아르마3 라는 게임 게시물에

Vram을 할당할 경우 프레임이 좋아진다는 내용을 본 다음이었습니다.


해외 레딧 사이트들에서도 마찬가지로 maxVram으로 프레임 상승을 봤다는 이야기들이 있어서

입력 요령에 대해 알아보니 (그래픽카드에 장착된 비디오램 x 1024) - 512 를 해서 적더군요.


512를 빼주는 이유는 역시 윈도우 시스템이 점유하는 기본 비디오램을 512mb로 가정하기 때문이었습니다.

(배틀그라운드 화면 출력 외에 기본적으로 윈도우가 화면 출력을 위해 모니터 출력용으로 512mb 이하의

비디오램을 기본 점유한다네요. 그래서 512mb를 빼준다고 합니다)


여러분도 그래픽카드 비디오램이 얼마인지 확인하신 후, 그 숫자에 곱하기 1024 하고나서 512 빼세요.

결과는? 역시 동영상에서 보시듯 대성공


주의> gtx970의 경우 비디오램이 4GB 이지만 정확하게는 3.5gb + 0.5gb 로 쪼개진 램입니다.

큰 조각인 3.5gb 를 가지고 수치를 입력하셔야만 효과를 볼 수 있습니다.

gtx970 사용자분들은 -maxVram=3072 로 입력하시기 바랍니다.



-high : 윈도우 시스템을 제외하고서 실행 중인 프로세스 중에 배틀그라운드를 최우선으로 처리 할당하는 명령어 입니다.


-USEALLAVAILABLECORES -cpuPause 4  :  사용가능한 CPU 코어를 모조리 할당시키라는 명령어 입니다.

뒤에 -cpuPause 4 는 혹시 몰라서 추가로 적은 겁니다. 기능은 똑같습니다.

CPU 코어가 적거나 더 많은 걸 사용하시면 4 대신 그 갯수를 입력하세요.


-threads 4 : CPU 안에 내장된 쓰레드를 할당하라는 명령어 입니다. 사용하시는 CPU의 쓰레드 숫자를 4 대신 넣으세요.


-malloc=system : 시스템이 알아서 동적 메모리 할당을 담당하라는 명령어 입니다. 이 명령어를 사용해야만

다른 메모리 할당 명령어의 영역 설정에 오류가 있더라도 조정이 가능합니다.

절대 빼먹으면 안되는 명령어라고 합니다.


-force-feature-level-11-0 : 다이렉트X11 관련 기능을 적용시키지 말라는 명령어 입니다. 배틀그라운드는 어차피

다이렉트X9 기반 게임이므로 이 명령어를 사용하여 다렉X11 관련 기능을 로딩하지 않게

만들어 리소스를 아낄 수 있습니다.





이 게시물 상단에 첨부된, 동영상에 사용된 저희 매장 PC스펙은 아래와 같습니다.


CPU : 하스웰 리플래시 i5-4690 (4코어 4쓰레드)

메인보드 : 기가바이트 H81M-DS2V (바이오스 업데이트 F6 - 2015년 5월 최신)

램 : 삼성 DDR3-12800 4GB X 2개 = 8GB 듀얼채널

그래픽카드 : 갤럭시 GTX1060 OC 3GB

저장장치 : 별도 SSD/HDD 없음. No HDD 시스템으로, PC방 메인서버에서 전체 PC로 저장된 이미지를 로딩하여 사용.

통신설로 : KT 500MB 회선

OS : 윈도우7 프로페셔널 64비트

해상도 : FHD (1920 x 1080)

배틀그라운드 화면 스케일 : 90




게시물 상단에 게시된 동영상의 그래픽 설정은 안티얼라이싱 높음 / 텍스처 낮음 / 그외 모두 매우낮음 입니다.


그래픽카드 960 2gb / 1050 4gb 이하를 사용하시는 분들은 안티얼라이싱 높음 / 그외 모두 매우 낮음으로 사용하세요.


만약 여유가 있다고 느끼신다면 텍스처만 낮음으로 올려서 사용하세요.



하지만 안티 높음 / 그외 모두 매우 낮음으로도 프레임이 그다지 올라온다고 생각되지 않는다면


그건 진짜 그래픽카드가 버거워하는 것이니 안티얼라이싱을 중간으로 낮춰보세요. (660이나 560 이하 이용자)


그 상태에서 텍스처를 낮음으로 올려보면서 어느 쪽이 프레임 향상에 유리한지 직접 테스트 해보셔야 합니다.




960 4gb / 1050Ti 4gb 같이, 비디오램이 큰 그래픽카드를 사용한다면 안티얼라이싱을 높음으로


놔둔 상태에서 텍스처를 중간까지도 올려보세요. 낮음과 중간을 왔다갔다 설정하시면서 프레임에 어느 쪽이


더 좋은지, 유지는 잘 되는지 테스트하면서 더 좋다고 판단되는 쪽으로 설정을 유지하시면 됩니다.




1060 6gb이상 그래픽카드 사용자분들은 안티얼라이싱을 울트라로 올리시고, 텍스처를 낮음으로 설정해보신 후에,


한 단계씩 텍스처 수준을 높여가면서 프레임 변화 추이를 확인하세요.




일단 1060 3gb를 사용하는 저희 매장에서는 안티 높음 / 텍스처 낮음 / 그외 모두 매우 낮음일 때 프레임이 가장 잘 나오고


가장 잘 유지되었습니다. 여러 변수가 있긴 하겠지만 이걸 기준으로 약간씩 변화를 주시면 되리라 생각합니다.




절대 손대지 말아야할 설정은,


포스트 프로세싱 - 매우 낮음 하세요. 낮음으로만 올려도 인벤토리 부를 때 배경이 블러처리 되면서 전방 주시 안됩니다.


그림자 - 매우 낮음, 혹은 낮음 하세요. 중간으로 올리는 순간 음영 단계가 복잡해지면서 엄청 어두운 구간이 생깁니다.


효과 - 매우 낮음, 혹은 낮음으로 하시는게 좋습니다. 중간 올라가면 상대편 총구 불빛 보일 때마다 살짝 끊깁니다.


거리보기 - 매우 낮음으로 두세요. 그래도 건물이나 식생, 주요 오브젝트 다 보이고 타유저도 다 관찰됩니다.



즉, 위의 옵션들을 제외하면 사실상 건들 수 있는건 안티얼라이싱과 텍스처 뿐 입니다.


이 두가지를 적절히 조정해서 CPU에 부하를 주고, 그로인해 그래픽카드 쪽으로 일거리를 넘기게 만드셔야 합니다.


텍스처의 경우 옵션을 올릴수록 고해상도-고용량 이미지를 사용하게 되어 램에 부담을 주게 되므로,


순수하게 그래픽카드가 처리하기 용이한 안티얼라이싱을 주로 올려주셔야 합니다.


텍스처의 경우 매우낮음으로 하면 시각적으로 그래픽이 너무 안좋게 보이니까, 매우낮음 보다는 낮음 추천드리며,


1060 6gb 이상 고성능 그래픽카드에서는 텍스처도 중간옵 이상 쓰셔도 무방하리라 보입니다.




이것으로 정말 프레임 상승 관련 마지막 결정판이 되길 기대합니다.


많은 분들의 피드백 기다려보겠습니다. 저희 매장에선 이걸로 옵션 낙찰 봤네요. 더 이상 바랄게 없는 수준입니다.


이제 튕기는 현상 방지를 연구해야하는데, 이건 너무 랜덤성이라서 아직까진 더 지켜볼 필요가 있겠습니다.


(어쩔 땐 한시간 반만에 튕기고, 어쩔 땐 세시간 돌려도 멀쩡하고....)


이 부분에 대해서도 대책을 찾으면 알려드리겠습니다.



긴 글 읽어주셔서 감사합니다. 프레임 문제로 곤란을 겪고 계신 분들께 좋은 결과가 있었으면 하네요 (_ _)



=============== 추가 내용 : 메인보드 바이오스 관련 =====================


제가 다시 곰곰히 생각해봤습니다.


비슷한 사양을 가진 분들 중에서도 어느 분들 효과를 보고 어느 분은 효과를 못본다니, 하드웨어 특성이라는게


있긴 하지만 그래도 어느 정도는 성능 향상을 봐야하지 않을까 싶었습니다. 100%는 아니더라도 60~70% 정도는요.


그래서 여러가지 사항을 점검해보다가, 퍼뜩 떠오른게 메인보드 바이오스 입니다.


제가 오버워치 관련해서 프레임테스트를 엄청 많이 했고, 오버워치 팁 게시판에서도 인증글로 뽑힌 적도 있습니다.

http://www.inven.co.kr/board/powerbbs.php?come_idx=4680&l=10760

http://www.inven.co.kr/board/powerbbs.php?come_idx=4680&l=12526


제가 오버워치 프레임 테스트를 진행하면서, 메인보드 바이오스를 업데이트 했더니 그것만으로도 프레임이


상당히 올라갔었습니다.



만약 배틀그라운드도 그렇다면 어떨까요?



정확하게는, 메인보드 바이오스 최신 버전이 2015년 4월 이전에 나온 메인보드의 경우에는 1000번대 그래픽카드를


사용할 시 최대 성능이 나오지 않습니다. (Vram 용량 인식 오류 및 인터페이스 호환성 이슈)


자신의 메인보드 제조사와 모델명을 꼭 확인해보세요. 그리고 바이오스를 최신 버전으로 업데이트하시기 바랍니다.



< 메인보드 제조사 및 모델명 / 바이오스 버전 확인하는 법 >


https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=cpu-z


위 페이지에서 CPU-Z 다운로드 및 설치 -> 실행



실행 후 상단 Mainboard 탭 클릭 -> 상단 박스에서 ManuFacturer (제조사) / Medel (모델명) 확인.


중간 박스(BIOS 박스)에서 [Date]에 적힌 날짜 확인 (이게 바이오스가 만들어진 날짜) 하시면 됩니다.



만약 2015년 4월 이전 날짜가 적혀있다면 해당 제조사 홈페이지로 가서 최신 바이오스를 다운받으셔야 합니다.


왜 2015년 4월이냐면, 1000번대 그래픽카드에 사용되는 파스칼 아키텍처가 정식 공개된 것이 2015년 2월이고 (1080이었죠),


그 공개된 내용으로 메인보드 바이오스를 제작하는데 1달 정도가 소요된다고 하면, 2015년 4월 이전에 발매된


메인보드는 거의 1000번대 지원 바이오스가 아닐 것이기 때문입니다.



기가바이트 : http://www.gigabyte.kr/Support    (페이지 우측 상단 검색 이용)

ASUS : https://www.asus.com/kr/support/   (페이지 좌측 중단 검색 이용)

ASROCK : http://www.asrock.com/support/index.asp   (페이지 좌측 상단 검색 이용)

MSI : https://kr.msi.com/support    (페이지 좌측 중단 검색 이용)

기타 등등 : 알아서 잘 ㅠㅠ



바이오스를 업데이트 하는 방법엔 여러가지가 있는데, 보통 USB에 신버전을 다운로드 받아서 하는 경우가 많습니다.



기가바이트 : 참조할만한 페이지 - http://blog.naver.com/stonbaby/220966707957  

(기가바이트는 보통 부팅시 F2를 누르면 바이오스 업데이트로 직행하는 메뉴가 뜹니다)


ASUS : 참조할만한 페이지 - http://pastimelife.com/1177


ASROCK : 참조할만한 페이지 - http://mukppe.tistory.com/1016


MSI : 참조할만한 페이지 - http://from020.blog.me/221004985939  (포스트 하단 쯤에  M-Flash 바이오스 업데이트 소개)


기타 등등 : 알아서 잘 ㅠㅠ




만약에 1천번대 그래픽카드를 사용하는데 2015년 4월 이후 업데이트 된 메인보드 바이오스가 없다?


메인보드 바꾸시는게 좋습니다. 그 메인보드로는 1000번대 이전 (최대 980급) 까지만 100% 성능을 뽑을 수 있지,


1천번대 꽂아서는 성능 최대한 못 뽑습니다. 메인보드 교체 고려해보시길 바랍니다.


제가 인터넷에서 확인해보니 Vram 인식 오류 이슈가 있더군요. 이거 배틀그라운드로 maxVram 명령어 적용할 때


상당한 애로사항이 있을 것으로 짐작 됩니다.




메인보드 바이오스 반드시 확인해보시고 최신으로 업데이트 하세요.


요즘 구매한 녀석이라도 바이오스 자체는 예전 버전이 탑재되어 출고되어있을 수 있으니 한번쯤 확인하시기 바랍니다.

Comments