GAPID Graphics Debugger (Android Game Developer Summit 2018)

벤 클레이튼 : 안녕하세요, 저는 벤입니다 나는 잘 생겼어

이것은 파스칼입니다 파스칼은 또한 그것에 대해 거의 작업하고 있습니다 내가 가진 한 그래서이 슬라이드는 아마 지금은 조금 무의미합니다 GAPID, 오픈 소스, 개발 된 GL ES 및 Vulkan을위한 열린, 추적 및 재생 도구 현재 디버거입니다

많은 그래픽을 진단하고 수정하는 데 사용할 수 있습니다 게임 개발시 문제 우리는 현장에서 사용 해왔고 아주 바보 같은 것을 발견했습니다 일부 게임 엔진들 그렇지 않으면 완전히 숨겨 질 것입니다 개발자로부터

그것은 크로스 플랫폼입니다 Windows, Mac Linux를 실행하며 디버깅 할 수있는 Android 애플리케이션을 추적하는 데 사용할 수 있습니다 Vulkan에게는 실제로 데스크톱도 지원합니다 Windows에서 Vulkan 응용 프로그램을 추적 할 수 있습니다 또는 Linux, 분명히 Mac이 아닙니다

그리고 네, 지금 가서 다운로드 할 수 있습니다 GitHub에 있습니다 따라서 githubcom/google/gapid, 그런 다음 릴리스를 살펴볼 수 있습니다 그래서 그것에 대해 이야기하는 대신에, 결국 그래픽입니다

뿐만 아니라 몇 가지 물건을 보여줍니다 그래서 파스칼에게 가져 가겠습니다 파스칼 뮐러 : 그래, 우리가 처음 시작할 때, 이 시작 대화 상자가 나타납니다 캡처와 같은 가장 일반적인 작업을 빠르게 수행 할 수 있습니다 및 추적

마우스를 볼 수 있는지 보겠습니다 캡처, 추적 대화 상자 추적 할 API를 선택합니다 그리고 GL을 추적합니다 Android 기기를 선택할 수 있습니다

우리는 USB 포트가 부족하기 때문에, 우리는 실제로 추적을하지 않을 것입니다 그것은 또한 꽤 지루합니다 APK를 선택하십시오 몇 가지 옵션이 있습니다 그리고 파일을 추적 할 수 있습니다

하지만 대신에 이전에 찍은 흔적을 열어 두겠습니다 이것은 Google의 유일한 게임 인 Sushi, Android에서 상단에서 캡처 된 프레임을 볼 수 있습니다 프레임의 일부 프레임 미리보기가 표시됩니다 이것은 대부분 메뉴에 지나지 않습니다 우리가 더 흥미로운 것을 발견 할 수 있는지 봅시다

신청서의 시작 왼쪽 하단에는 모든 명령이 표시됩니다 그리고 프레임 단위로 그룹화하고 콜을 그렸습니다 그리고 애플리케이션에 디버그 마커를 포함시키는 경우 여기에 표시되는 디버그 마커가 표시됩니다

우리는 모든 그룹을 볼 수 있습니다 이것은 나를 위해 작은 것입니다 예를 들어 프레임을 한 단계 씩 이동할 수 있습니다 어떻게 그것이 둘 다 일어나는 지보십시오 여기에 그룹화 된 모든 그리기 호출이 표시됩니다

물론 실제 그리기 호출도 볼 수 있습니다 하지만 전화를 받아야 할 수도 있습니다 하지만 분명히 우리는 또한 GL 드라이버 상태의 나머지 부분 예를 들어, 형상을 볼 수 있습니다 그것은 여기 렌더링되었습니다

이것은 단지 약간의 잎이다 여기에 새우 초밥을 골라 드리겠습니다 좀 더 흥미로운 지오메트리를 볼 수 있습니다 예를 들어, 법선을 디버깅 할 수 있습니다 그들이 좋아 보이지 않는다면

형상을 검사 할 수 있습니다 이 무승부에 하나가있었습니다 또한 모든 텍스처를 검사 할 수 있습니다 그래서 우리는 사용 된 텍스처를 봅니다 그리고 이것은 또한 당신에게 내용을 보여줄 것입니다

렌더링 된 타겟 텍스처가 정말 멋지다 일반적으로 그림자를 렌더링해야합니다 화면에지도 여기에서 검사 만하실 수 있습니다 그리고 우리는 당신과 같은 이미지 도구를 가지고 있습니다

채널을 비활성화 할 수 있으므로 다시 섀도우 맵에 유용합니다 다른 채널에 대해 다른 값이 있습니다 확대하고 검사 할 수 있습니다 물론 셰이더를 보여줍니다 그리고 우리가 할 수있는 일 중 하나 빠른 프로토 타이핑입니다

차광 할 문제가있을 때마다 그늘을 더하고 있습니다 너는 그것을 구할 수있다 응용 프로그램을 다시 빌드해야합니다 그런 다음 패키지를 패키지로 만들어 장치에 배포해야합니다

단지 당신이 그 점 0 또는 무엇을 잊어 버린 것을 알아내는 것입니다 그래서 여기에서 쉐이더를 편집 할 수 있습니다 여기에 내가 전에 구한 것을 붙여 넣으십시오 변경 사항을 푸시합니다 몇 초 후에 변경 사항을 볼 수 있습니다

그 일이 일어나고 우리의 Skybox가 멋진 일몰으로 변하게됩니다 빨간 모든 프레임에서 변경되었음을 알 수 있습니다 우리는 작은 하늘 상자를 멋지고 붉은 색으로 바 꾸었습니다 우리는 GL 드라이버의 전체 상태를 추적했습니다

추적의 어느 시점에서든 검사 할 수 있습니다 문제가 발생하여 원하는 경우 이 시점에서 계획 상태가 무엇인지 알기 위해, 당신은 들어가서 추적을 조사 할 수 있습니다 비행기 상태를 볼 수 있습니다 (예 : 여기 프레임 박스는 여기에 있습니다 설정 한 모든 값을 볼 수 있습니다 오, 이건 달라야합니다

우리는 또한보고 시스템의 시작을 가지고 있습니다 예를 들어, 오류를 추적합니다 감옥 오류 – 감옥 추적 오류가 발생합니다 여기에 예를 들어 설명하겠습니다 명령에 빨리 갈 수 있습니다

그리고이 get integer가 흥미있는 식별자를 가지고 있음을 보아라 존재하지 않습니다 그리고 우리는 다른 것들에 대해서도 계획하고 있습니다 우리가 당신의 흔적에서 발견하고 당신을 줄 수있는 하루를 어떻게 향상시킬 수 있는지에 대한 실용적인 피드백 나는 그것의 대부분을 다루고 있다고 생각합니다

BEN CLAYTON : 기억을 시도 했습니까? 파스칼 뮐러 : 분명히, 어떤 명령에 대해서는, GL 유니폼과 같은 것을 찾아 보자 기억을 보는 것은별로 흥미롭지 않습니다 바늘 그래서 우리는 분명히 기억을 추적합니다 그리고 어떤 기억이 통과되었는지 알 수 있습니다

그리고 [INAUDIBLE]에서 포맷 할 수 있습니다 여기에서 여러분은 그 행렬을 볼 수 있습니다 이 유니폼에 전달되었습니다 BEN CLAYTON : 메모리는 일종의 전동 공구입니다 그러나 선택한 특정 명령에 대해 당신은 그 모든 메모리를 볼 수 있습니다

명령에 의해 읽거나 썼다 그 시점에서 하나씩 벗어나는 오류에 유용합니다 그래, 그게 지금 그 도구에요 다른 몇 가지 그는 GL에 여러 맥락을 넣었습니다

맨 위에있는 바, 기본적으로, 가장 관련성이 높은 문맥을 고려 특정 게임 하지만 많은 엔진의 경우 스핀 업되는 다중 컨텍스트 그래서 그들 사이를 볼 수 있습니다 인터리빙 된 컨텍스트 모드에 대한 옵션으로서, 그래서 문맥이 어떻게되는지 볼 수 있습니다 그들 각각과 이야기하는 것

하지만 그래, 그게 우리가 지금하는 일이야 그런데 질문이 있으면, 방해해서는 안됩니다 파스칼 뮐러 : 예 청중 : 고해상도 CPU 타임 스탬프가 있습니까? 이에? 때로는 코드가 CPU 측에서 무엇을하는지 알고있는 것이 좋습니다 프레임을 만들 때

벤 클레이튼 : 현재, 아니 우리는 타임 스탬프와 같이 여분의 메타 데이터를 넣고 싶었습니다 정보 우리는 그 유용성에 관해서 울타리에 서있다 추적을하면 시간이 왜곡되기 때문입니다

따라서 실시간 정보를 갖는 것은 약간의기만 행위가 될 수 있습니다 그러나 스택 추적 정보 같은 것들 특히 유용 할 것입니다 특정 드로우 콜을 보는 것은 나쁘다 그게 어디서 온거야? 그래 관객 : [INAUDIBLE] BEN CLAYTON : 다시 한번 말하지만, 그들을 우리에게 보내주십시오

그리고 우리는 그들에게 행동 할 것입니다 청중 : 프레임 속도보기에 현재 렌더링이 표시됩니까? 바운드 된 타겟, 또는 백 버퍼가 될까요? 우리가 사용하는 프레임 버퍼는 현재 무엇이 있는지 보여줍니다 그 시점에서 흔적이 많다 BEN CLAYTON : 게시물 효과와 화면에서 벗어나면 모든 것을 디버깅 할 수 있습니다 관객 : 아마도 나는 그것을 놓쳤습니다

GPU 및 Android OS의 요구 사항은 무엇입니까? 지금 지원됩니까? Android 버전은 모든 GPU에서 작동합니까? BEN CLAYTON : 좋습니다, 이론적으로 그렇게 중요하지 않아야합니다 우리가 그 순간에 가로 챌 방법 드라이버를 패치하는 것입니다 그리고 패치 할 수있는 것에 몇 가지 제한이 있습니다 그래서 우리는 특정 바이트 수를 요구합니다 우리가 변경하려고하는 함수 당 명령 수

특정 운전자에게는 기능이 너무 짧습니다 Android 최신 버전 출시 및 곧 출시 예정 [INAUDIBLE] OS 지원입니다 그래서 우리는이 불쾌한 운전자에게 패치를하지 않을 것입니다 실제로 OS에 훅이 생깁니다 그래서 우리는 무엇이든 추적 할 수 있습니다

관객 : 안녕하세요 픽셀 버퍼 [INAUDIBLE]의 [INAUDIBLE] 확장 프레임에 있습니까 을지 지하다– BEN CLAYTON : 현재 깊이를 검사 할 수 있습니다 스텐실에 대한 견해가 없습니다 그러나 우리는 곧 그 일을 할 것입니다 관객 : 그것은 우리에게 매우 유용합니다

BEN CLAYTON : 우리가하는 일에 대해서 – 그 전에 도구가 꽤 모듈 식입니다 우리는 모든 현명한 사람들이 있습니다 하나의 특정 프로세스에서 그리고 UI는 사실 전혀 묶여 있지 않습니다 우리는 RPC 사용자 인터페이스를 사용하여 서버와 통신합니다

그리고 우리는 실제로 우리가 다른 도구를 가지고 있습니다 당신이 그것을 다운로드 할 때 배 그것은 GAPID라고합니다 실제로 동일한 기능을 많이 제공합니다 개발하는 데 정말 유용했습니다

이 명령을 사용하여 명령, 상태, 프레임, 그것을 사용하여 GL 오류 또는 Vulkan 문제를 찾으십시오 자동화 된 테스트에서이 점에서 많은 가치를 발견합니다 추적을 할 수 있습니다 명령 줄 도구를 사용할 수 있습니다 예를 들어 야간 빌드의 일부로 그렇지 않으면 실종 될 응용 프로그램의 문제

그래서 예를 들어, 나는 가지 않을거야 명령 행을 입력하십시오 그러나 우리가 단지 demoing하고 있었던 것과 같은 흔적이 주어지면서, 특정 시점에서 스크린 샷을 얻을 수 있습니다 우리는 또한 MP4 비디오를 만들 수 있습니다 네가 가진 건 뭐든간에

우리가 가지고있는 또 다른 모드가 있습니다 추적하는 동안 프레임 버퍼를 캡처합니다 그리고 나서 우리가 검증을 할 때, 우리는 실제로 리플레이가 일치하는지 확인할 수 있습니다 하나의 기기 재생이 진행될 때, 운전자와 운전자 사이의 변화에 ​​특히 유용 할 수 있습니다 예를 들면

그리고 내 슬라이드가 실패했습니다 예 그래서 우리가 현재하고있는 현재의 일, 시도해 본 사람들을 위해 이미 GAPID, 실망했을 수도 있습니다 도구의 성능 우리는 그것이되어야 할만큼 빠르지 않다는 것을 충분히 알고 있습니다

그리고 너무 많은 메모리를 차지합니다 이것이 우리의 가장 중요한 것입니다 지금 당장 노력하고있어 빨리해라 리소스를 덜 차지하게 만듭니다

GL ES의 중간 실행 캡처는 다음과 같습니다 우리는 사람들이 많이 많이 원한다는 말을 들었습니다 그래서 우리는 그것을 곧 풀어 나갈 것입니다 그리고 기기 재생시 – 우리가 간단히 언급했듯이 나는이 컴퓨터의 모든 USB 포트를 실제로 사용했습니다

GL ES에 대한 재생이이 컴퓨터에서 수행되고 있습니다 따라서 우리는 GL ES에서 다시 데스크톱 GL로 변환하여 재생합니다 우리가 할 수있는 한 멀리까지 가져 왔습니다 애플은 GL 드라이버를 더 이상 밀어 붙이지 않았다 우리는 현재 GL ES가 실제로 데스크톱 GL, 기본 포트를 초과하므로 데스크톱 재생, 번역을 통해 실제로는 불가능하기가 어렵다

불칸에게도 마찬가지입니다 공연 우리는 또한 그곳에서 유효성 확인을 원합니다 보고서의 일부로 따라서 레이어를 가질 필요가 없습니다 너는 흔적을 남겼다

그리고 같은 정보를 얻습니다 그리고 마지막은 Vulkan 데이터를 시각화하기위한 향상된 UI입니다 Vulkan은 GL ES의 매우 다른 짐승입니다 즉각적인 모드가 아닙니다 명령 버퍼가 있습니다

일련의 호출 순서로 항목을 표시하려고합니다 그것을하는 한 방법입니다 그러나 우리가 느끼는 최선의 방법은 아닙니다 그래서 우리는 지금 많은 연구를하고 있습니다 이 새로운 그래픽을 더 잘 시각화하는 방법 API를 사용하면 그래프 표현이 더 많을 수도 있습니다

그 후에 우리는 사물에 대한 많은 아이디어를 가지고 있습니다 우리가하고 싶은 것 그러나 우리는 당신으로부터 피드백을 받고 싶습니다 어디에 우리가 시간을 투자해야하는지 나는이 프로젝트를 수년 동안 이끌어 왔습니다

그리고 10 대 때, 나는 항상 RTS 게임을 너무 많이 사용했습니다 그래서 테크 나무는 일종의 방법입니다 나는 많은 것들이 있다는 점에서 내가하는 일을 시각화한다 내가 할 수 있고 어떤 것들은 잠금 해제 다른 것들 나머지 슬라이드는 우리가 할 수있는 일의 일부를 겪게 될 것입니다

그리고 어떻게 내 미친 gamey 두뇌에 그들을 분류합니다 당신이 기입 할 수있는 설문지가 있습니다 우리가 이것을 통과 할 때 함께 놀면 도움이 될 것입니다 너 내가 뭘 말하는지 알 수 있도록 질문이있을 때에 대해

원하지 않는다면 괜찮습니다 나 한테서 붙들지 않을거야 하지만 그걸 열 수 있다면 계속 해봐 슬라이드는 질문과 관련됩니다 그게 다가와

시원한 파스칼 뮐러 : 문제가 있습니다 벤 클레이튼 : 질문 하나? 청중 : 그래픽 프로파일 러에 대한 타임 라인이 있습니까? GPU를 위해? 파스칼 풋내기 : 타임 라인? 오늘부터 피드백이 무엇인지 알게 될 것입니다 우리는 타임 라인을 얻을 수 있을지도 모릅니다 시원한

첫 번째 그룹은 통계입니다 프로파일 링을 포함하지 않는 것들을 분류합니다 이 그룹에서는 여전히 의미있는 가치를 지니고 있습니다 그래서 우리가 지금 가지고 있어야만하는 가장 간단한 것, 일종의 x 물건입니다 프레임 당 그리기 호출 수입니다

가장 확실한 것입니다 기기에서 2,000 회의 무승부 전화 오직 몇 백에 대처할 수 있습니다 당신은 나쁜 시간을 보낼 것입니다 이것의 예는 프레임 당 분명히 드로우이며, 무승부 당 정점, 무엇이든간에 삼각형, 메모리 사용량의 추정치도 마찬가지입니다 가지고있는 텍스처의 수

우리는 또한 일종의 장치 예산을 생각해 내고 싶다 작년 내 작품의 일부 게임 회사에 나갔다 60 점을 얻는 데 도움을 주려고합니다 x 당 y 가지를 기반으로, 숫자 개발중인 도서 목록 어떤 종류의 합리적인 지침도없이 얼마나 많은 무승부를 요구해야하는지 특정 장치를 만들 수있다 조금 우울합니다

우리는 일종의 데이터를 제공 할 수 있습니다 특정 주력 장치의 경우, 프레임 당 x 개의 정점을 제출하는 것이 좋습니다 예를 들면 우리는 GAPID 내부의 자동 지식을 가질 수 있습니다 다른 장치 모음 네가 알면 경고 해 줄거야

그 예산 밖에서 FrameBuffer 시각화 – 이것들 당신이하는 오버 드로의 숫자 같은 것들입니다 여기에 물건을 넣을 수도 있습니다 심도가 떨어질 수있는 조각을 강조 표시하는 것과 같습니다 시험, 좋은 일이 될 수있다

또는 쉐이더 프로그램에 의해 프레임을 표시하는 것, 예를 들면, 이것은 좋은 알기 방법입니다 여기서 쉐이더를 최적화해야 할 곳을 찾아야합니다 관객 : [INAUDIBLE] 파스칼 뮌스터 : 네, 오버 드로가 그 일부입니다 관객 : [INAUDIBLE] 파스칼 뮌스터 : 이제오고 있습니다 셰이더 정적 분석 – 이것은 까다로운 문제입니다

그것은 공기 중 하나의 손가락이어야합니다 많은 다른 GPU가 있기 때문에 거기 밖으로, 귀하의 쉐이더 코드 사이에 많은 중간 레이어 셰이더가 실제로하는 일은 하드웨어가 수행하는 작업입니다 하지만, 우리는 숫자에 대한 대략적인 견적을 내놓을 수 있습니다 텍스트를 통한 ALU 작업의 예를 들어, 손을 물결 치는 데 도움이 될 수 있습니다 셰이더가하는 일 중 프로파일 링 – 큰 기능 요청은 여기에 있습니다

사람들이 생각하는 제일 먼저하는 것은 틀과 그림, 카운터, 나는 말했다 그러나 프레임과 드로 타임은 아주 좋습니다 불행히도 타일링 된 아키텍처는 통화 시간은 매우 어렵습니다 우리는 몇 가지 아이디어를 가지고 있습니다 유용한 일부 데이터를 찾을 수 있습니다

그러나 프레임 속도가 얼마인지 알면, 어떤 일들이 얼마나 오래 걸리고 있는지 아는 것 우리가하고 싶은 것이 분명합니다 IHV로부터 하드웨어 카운터를 얻을 수 있다면, 우리는 하드웨어의 거대한 바다를 맛보고 싶습니다 아무도 정말로 이해할 수없는 카운터 의미있는 시간이기 때문에 얼마나 많은 시간을 할 수 있는지 알려줄 수 있습니다 [INAUDIBLE]을 (를) 지출하면 얼마나 많은 시간을 할애 할 수 있습니다 예를 들어, 캐시 엉망진창

많은 IHV 도구들 드로우 콜 타임 (draw call time)과 같은 것을 제공하는 것은 상대적 셰이더 비용입니다 그래서 그들의 도구가 정확히 어떻게 말할 수 없을지라도 오랜 한 번의 무승부 요청이 걸렸습니다 그들은 더 많은 접근 방식을 취합니다 이것들은 당신이 가진 모든 쉐이더 프로그램들이다 그리고이 특별한 것은 실제로 당신의 시간의 30 %를 필요로합니다

최적화해야하는 곳입니다 이것은 내가 생각하기에 매우 소중한 것입니다 우리는 확실히해야합니다 우리가 처음 두 가지 일을 끝내면, 우리는 통계를 바탕으로 한 제안을하고 싶습니다 따라서 이전에 다른 도구를 사용한 적이 있다면, 그들은 종종 당신이 생각했는지 제안합니다

정점 형식을 변경하는 것에 대해 [INAUDIBLE] 그 (것)들을 분리하는 것과 반대로? 이러한 것들이 우리가 도구를 원할 것입니다 실제로 가서 당신을 위해 할 수 있습니다 도구에 실제로 사용할 수있는 패턴이 여러 개있는 경우 탐지하여 추적에 적용하고 시간을 정하십시오 우리는 일종의 정렬 된 목록을 제공 할 수 있습니다 영향으로 주문한 이익을 최적화하기 위해 할 수있는 일

나는 게임 개발자, 그들의 시간은 소중합니다 너는 삼일을 보내고 싶지 않아 절반 이상 향상시킬 수있는 무언가를 최적화합니다 이 한 가지 일을 보여줄 수 있다면 시간의 10 %를 절약 할 수 있습니다 자주 잊혀지는 또 다른 일 전력 사용 및 열전쌍입니다

정말 중요합니다 그래서 우리가 당신에게 어떤 프로파일 링을 줄 수 있다면 타이밍에 관한 정보, 우리도해야한다 얼마나 많은 힘을 사용하고 있는지 보아라 우리가 할 수있는 게 있는지 알아봐 그것을 줄이기 위해 제안하십시오

셰이더 디버깅 – 버텍스 나 프래그먼트를 클릭 할 수 있음 귀하의 FrameBuffer에서 단일 라인 스테핑 있습니다 그래서 이것은 아주 기본적인 버그입니다 우리는 당신이 전방과 후방으로 나아갈 수 있기를 원합니다 시계 창을 가지고, 당신이 따라갈 때 모든 값을보십시오 여기에도 큰 질문이 있습니다

당신이 더 많은 시뮬레이션을 할 수 있을지 여부 실제 하드웨어 대 두 가지 모두에 장단점이 있습니다 디버깅하려는 경우, 그리고 당신은 검은 색 픽셀을 얻고 있고 그것은 드라이버 또는 하드웨어입니다 문제를 제기 한 다음, 분명히, 실제로 하드웨어 문제가 있음을 여러분에게 증명할 수 있습니다 반면에, 실제 하드웨어에서 벗어나려고 할 때 같은 방식으로 왜곡 된 결과를 줄 수 있습니다 픽셀 역사 – 그것은 디버깅의 일부분이며, 하지만 FrameBuffer를 클릭하면 색깔에 영향을 미치는 모든 무승부, 또는 깊이 또는 스텐실

나는 그것들을 포함 시키거나 제외시킬 수있다 이후 겹쳐 썼다 셰이더 기능 및 성능 표 버텍스 폼에 더 일반적입니다 미친 버텍스가 하나 있다면 스크린에서 반 마일, 너 너 그 하나의 것을 식별 할 수 있고, 가서 가서 디버깅 할 수 있습니다 왜 당신이 [무관심한] 또는 무엇인가를 가지고 있는지 알아 내십시오

그리고 우리가 생각한 다른 것 너 괜찮 으면, 아주 좋을거야 특정 쉐이더 디버깅, 입력 강조하기 출력합니다 예를 들어 텍스쳐가 있다면, 당신이 당신의 쉐이더에서 샘플링하고 있다는 것, 실제로 조각을 강조 표시합니다 그 특별한 쉐이더 [INAUDIBLE]에 관련되어 있습니다 우리가 할 수 있다고 가정하면, 매우 좋을 것입니다

등방성 필터링이있는 경우 실제로 사용되는 모든 조각 그리고 마침내 레퍼런스 레서 라이저를 사용하게됩니다 그래서 우리 말의 문제를 만지십시오 데스크톱 리플레이를 우리가 할 수 있다고 생각하는 한 이제 대안을 찾고 있습니다

따라서 참조 복원 기가 매우 유용 할 수 있습니다 다른 것들을 위해서뿐만 아니라 보장 된 재생을 갖는 것 호스트 시스템에서 수행 할 수 있습니다 이제 첫 번째는 우리가 알고있는 것입니다 장치에는 문제가 있습니다 운전자는 버그가있을 수 있습니다

하드웨어에 실제로 결함이있을 수 있습니다 우리는 이것에 대해 정말로 듣고 싶습니다 우리는 얼마나 많이 원하는지 충분히 강조 할 수 없다 깨진 운전자에 대해 듣기 우리는 사람들이 나쁜 시간을 보내고 있다는 것을 압니다

그러나 우리는 나가서 당신 이야기를 많이해야합니다 그래서 당신이 흔적을 가지고 있다면, 당신이 그것을 가지고, 당신은 유휴 상태입니다, 우리는 우리가 백그라운드에서 재연 할 수 있다고 생각합니다 참조 수복물로 그 후에, 당신은 당신이 기기에서 재생되고있다 우리가해야한다고 생각하는 것과 일치합니다 그리고 그들이 같지 않으면, 우리는 당신을 제공 할 수 있습니다

원 클릭 리포터 버그 그것은 우리에게 우리가 운전수에게 줄 수있는 정확한 기록을줍니다 팀이이를 수정해야합니다 그래서 그것은 안드로이드 생태계에 좋은 방법이 될 것입니다 모든 주위에서 더 좋을 것

GL ES 및 Vulkan 등이 있습니다 그것에 물결 모양의면을, 특히 떠있는 주위에 포인트 정밀도 및 샘플링 우리가 참조 회복기를 가지고 있다면, 우리는 여기에 가치가 있다고 생각합니다 네가 할 수있는 손잡이가있어서 기본적으로 물건이 어떻게 보이는지 비교하는 것 다른 하드웨어 사양 그래서 부동 소수점 정밀도는 고전적인 것입니다

부동 소수점 정밀도를로드하는 경우, 그러면 셰이더가 갑자기 0으로 나누기 시작합니다 이것은 일어나고 무언가이다 우리가 너를 자동으로 잡을 수 있을지도 몰라 [INAUDIBLE]에서 On-host replay – 우리는 GL ES를 얻었습니다

우리는 Vulkan을 위해서도 그것을 원합니다 레퍼런스 레서 라이저로 확실히 가능합니다 우리가 지금 가지고있는 것보다 훨씬 견고합니다 그리고 나서 마침내 자동화 된 테스트가 시작됩니다 이런 종류의 GAPID 도구로 돌아갑니다

당신이 안식의 휴식을 취한다면 네가하고있는 야간 빌드를 가지고있어 기본적으로 GAPID를 기본적으로 가질 수 있습니다 게임의 흔적을 가져라 그래픽의 API를 잘못 사용하지 않았는지 확인하십시오 그리고 이것을 사용하여 참조를 얻을 수도 있습니다

게임이 어떻게 보이는지에 대한 비디오 그리고 도구를 사용하여 실제로 얻으십시오 관심을 보이는 여러 기기의 동영상 잠재 고객이 팝업으로 표시 할 때 문제가 될 수 있습니다 점점 지난 주와는 달리 문 밖으로 게임 그래서 그것은 내가 방금 만났던 많은 것들이었습니다

아주, 아주 빨리 덮여 내가 여기에서 놓친 것들이 있다면 당신은 생각합니다 매우 귀중합니다 제발, 제발, 알려주세요 그리고 그게 다야

질문 있니? 관객 : 파워 프로파일 링에 대해 이야기했습니다 BEN CLAYTON : 죄송합니다, 그를 위해 마이크 관객 : 방금 전원 프로파일 링에 대해 언급했습니다 당신은 정교 할 수 있습니까? BEN CLAYTON : 아직 연구 중에 있습니다 그러나 그 생각은 우리가 능력을 가질 수 있다는 것입니다

같은 프레임을 되풀이하여 재생합니다 실제로 하드웨어를 지원하여 배수관을 보았다면 열전자를 모니터링하면 적어도 게임을 꾸준히 계속한다면, 함께 올라와라 이 특정 프레임과 비슷한 네가 가질 특성의 종류 야 배터리 및 열전쌍 그리고 우리가 최적화를 위해 가지고있는 휴리스틱 중 하나는, 우리는 또한 그것을 시도 할 수 있습니다

너를 밤새껏 달려야하는 무언가일지도 모르다 시도하고 안정적인 결과를 얻을 수 있습니다 하지만 주와 주보다 좋습니다 너 자신을 파고 들었다 관객 : 질문지에 대한 URL을 백업 할 수 있습니까? BEN CLAYTON : 물론입니다

우리는 거기에 갈 관객 : 힘과 열기에 관해서는 그걸 묶을 방법이 될거야 코어 주파수 및 CPU 사용량, 거기 있는지 여부를 볼 수 있습니다 통화 제출 간의 절충 시간 대 실제 GPU 시간? 벤 클레이튼 : 좋은 제안 그래 어쩌면

이것들은 우리가 간단히 살펴 봤던 것들입니다 우리는 개발을 시작하지 않았습니다 그래, 그게 가치있는 일이라면