חלונית הפקודות

בחלונית Commands (פקודות) מוצגות הקריאות שבוצעו על ידי האפליקציה, מקובצות לפי מסגרת וקריאה לציור או לפי סמני משתמש.

תצוגה ראשונית של מעקב OpenGL או Vulkan
איור 1. תצוגה ראשונית של מעקב OpenGL או Vulkan
הצגת מעקב OpenGL
איור 2. צפייה במעקב OpenGL
צפייה בנתוני מעקב של Vulkan
איור 3. צפייה במעקב של Vulkan
צפייה בנתוני מעקב של Vulkan
איור 4. חיפוש פקודה במעקב של Vulkan

תפעול

בחלונית הזו אפשר לבצע את הפעולות הבאות:

פעולה תיאור
הצגת התוצאה לוחצים על פקודה או על קבוצה כדי לעדכן את החלוניות האחרות כך שישקפו את המצב אחרי הפקודה או הקבוצה שנבחרו.
הרחבה או כיווץ של היררכיית הפקודות לוחצים על המשולש האפור שמימין לקבוצה או לוחצים לחיצה כפולה על הקבוצה כדי להרחיב או לכווץ אותה.
חיפוש מקלידים מחרוזת בסרגל החיפוש בחלק העליון של החלונית, ואז מקישים על Return (ראו את התמונה הקודמת). כדי למצוא את המופע הבא, מוודאים שהסרגל מסומן ולוחצים שוב על Return.

מסמנים את התיבה Regex כדי להשתמש בדפוס חיפוש של ביטוי רגולרי. לדוגמה, המחרוזת glClear.* תואמת לפקודות glClear() ו-glClearColor(). אפשר גם לחפש ערכים של פרמטרים של פקודות, כמו buffer: 2, שמשמש ב-glBindBuffer().
עריכה לוחצים לחיצה ימנית על פקודה ובוחרים באפשרות עריכה. בתיבת הדו-שיח עריכה, משנים ערך אחד או יותר ולוחצים על אישור. הערה: האפשרות הזו תקפה רק לפקודות Vulkan, ולא לפקודות OpenGL.
הצגת מידע על מצב או זיכרון לוחצים על ארגומנט של פקודה שמפנה לפרמטר מצב, כמו מזהה טקסטורה. בחלונית State מוצג מידע נוסף. לוחצים על כתובת או על מצביע בזיכרון כדי לפתוח את החלונית Memory (זיכרון). הערה: האפשרות הזו תקפה רק לפקודות Vulkan, ולא לפקודות OpenGL.
העתקת פקודות בוחרים פריטים בחלונית ומקישים על Control+C (או Command+C) כדי להעתיק פקודות עם ערכי הארגומנטים שלהן. אפשר להדביק את המידע הזה בקובץ טקסט.
הגדלת התמונה הממוזערת התמונה הממוזערת מופיעה מימין לשיחה, כמו שמוצג בתמונה הבאה. מעבירים את הסמן מעל התמונה הממוזערת כדי להגדיל אותה.
כיתוב

היררכיית פקודות OpenGL ES

פקודות OpenGL ES מתורגמות ל-Vulkan, והפקודות של Vulkan מנותחות. כתוצאה מכך, פקודות OpenGL ES מוצגות עם פקודות OpenGL ES ו-Vulkan בהיררכיה המורחבת. בדוגמה הקודמת אפשר לראות כמה פקודות של glDrawElement מתחת ל-RenderPass. ההררכיה של הפקודה השנייה glDrawElements הורחבה, ומוצגות הפקודות OpenGL ES ו-DrawIndexed. אפשר להרחיב את שתי ההיררכיות האלה כדי לראות את פקודות OpenGL ES שקשורות אליהן, וגם את פקודות Vulkan שהן תורגמו אליהן.

מכיוון שאין קשר ישיר בין OpenGL ES לבין Vulkan, יכול להיות שיהיו הבדלים מסוימים. לדוגמה, פקודה glClear שמופיעה לפני הפקודה הראשונה glDraw* תופיע לפני RenderPass. אם מרחיבים את ההיררכיה של glClear, לא יופיעו פקודות Vulkan. הסיבה לכך היא שהניקוי יידחה ויתבצע כחלק מהפעלת Vulkan RenderPass.

סמנים לניפוי באגים

בהתאם לאפליקציה, החלונית Commands יכולה להכיל רשימה ארוכה מאוד של פקודות בתוך מסגרת אחת. כדי לשפר את הניווט והקריאות, אפשר להגדיר סמני ניפוי באגים שמקבצים קריאות תחת כותרת בעץ. יכול להיות שהיא תכלול קיבוץ, למשל, בשם 'הגדרה' או 'הצגת העולם'.

אם הפעלתם סמני ניפוי באגים, לוחצים על החלונית Commands כדי להציג קישור למידע הזה. ל-OpenGL ES יש את ממשקי ה-API הבאים לקיבוץ פקודות:

EXTENSION / VERSION העברה בדחיפה POP
KHR_debug glPushDebugGroupKHR() glPopDebugGroupKHR()
EXT_debug_marker String String
OpenGL ES 3.2 String String

ל-Vulkan יש את ממשקי ה-API הבאים לקיבוץ פקודות:

EXTENSION / VERSION העברה בדחיפה POP
VK_EXT_debug_marker glPushDebugGroupKHR() glPopDebugGroupKHR()