קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
בחלונית Commands (פקודות) מוצגות הקריאות שבוצעו על ידי האפליקציה, מקובצות לפי מסגרת וקריאה לציור או לפי סמני משתמש.
איור 1. תצוגה ראשונית של מעקב OpenGL או Vulkanאיור 2. צפייה במעקב OpenGLאיור 3. צפייה במעקב של 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 הבאים לקיבוץ פקודות:
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Commands pane\n\nThe Commands pane displays the calls made by the application, grouped by frame and draw call or by user markers.\n**Figure 1.**Initial View of either an OpenGL or Vulkan trace **Figure 2.**Viewing an OpenGL trace **Figure 3.**Viewing a Vulkan trace **Figure 4.**Searching for a command in a Vulkan trace\n\nOperations\n----------\n\nYou can perform the following operations in this pane:\n\n| Operation | Description |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Show result | Click a command or group to update the other panes to reflect the state after the selected command or group. |\n| Expand or collapse the command hierarchy | Click the gray triangle to the left of a grouping or double-click the grouping to expand or collapse it. |\n| Search | Type a string in the search bar at the top of the pane, and then press **Return** (see the preceding image). To find the next occurrence, make sure the bar is selected and press **Return** again. Select the **Regex** box to use a regular expression search pattern. For example, `glClear.*` matches both commands `glClear()` and `glClearColor()`. You can also search for command parameter values such as buffer: `2`, which is used in `glBindBuffer().` |\n| Edit | Right-click a command and select **Edit** . In the **Edit** dialog, change one or more values and click **OK**. Note: This is only valid for Vulkan commands, and not for OpenGL commands. |\n| View state or memory information | Click a command argument that refers to a state parameter, such as a texture ID. The **State** pane displays additional information. Click a memory address or pointer to open the **Memory** pane. Note: This is only valid for Vulkan commands, and not for OpenGL commands. |\n| Copy commands | Select items in the pane and press Control+C (or Command+C) to copy commands with their argument values. You can paste this information into a text file. |\n| Magnify thumbnail | The thumbnail appears to the left of a call as shown in the following image. Hover the cursor over the thumbnail to enlarge it. |\n\nOpenGL ES command hierarchy\n---------------------------\n\nOpenGL ES commands are translated to Vulkan, and the Vulkan commands are\nanalyzed. As a result, OpenGL ES commands are shown with both OpenGL ES and\nVulkan commands shown in the expanded hierarchy. In the preceding example, you can\nsee multiple `glDrawElement` commands under the `RenderPass`. The second\n`glDrawElements` command hierarchy was expanded, and shows **OpenGL ES Commands**\nand **DrawIndexed**. You can expand both of these hierarchies to show the\nrelated OpenGL ES commands, as well as the Vulkan commands that they were translated\ninto.\n\nBecause there isn't a one-to-one relationship between OpenGL ES and Vulkan,\nthere may be some differences. For example, a `glClear` command that occurs\nbefore the first `glDraw*` command appears before a `RenderPass`. If you expand\nthe hierarchy of the `glClear`, there will be no Vulkan commands. That is because\nthe clear will be deferred and done as part of starting the Vulkan `RenderPass`.\n\nDebug markers\n-------------\n\nDepending on your app, the **Commands** pane can contain a very long list of\ncommands within one frame. For better navigation and readability, you can define\ndebug markers that group calls together under a heading in the tree. This could\ninclude a grouping, for example, named \"Setup\" or \"Render World.\"\n\nIf debug markers are enabled, click the **Commands** pane to reveal a\nlink to this information. OpenGL ES has the following APIs to group commands:\n\n| EXTENSION / VERSION | PUSH | POP |\n|-----------------------------------------------------------------------------------------------|-------------------------|------------------------|\n| [KHR_debug](https://www.khronos.org/registry/gles/extensions/KHR/KHR_debug.txt) | `glPushDebugGroupKHR()` | `glPopDebugGroupKHR()` |\n| [EXT_debug_marker](https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt) | `String` | `String` |\n| [OpenGL ES 3.2](https://www.khronos.org/opengles/sdk/docs/man32/html/glPopDebugGroup.xhtml) | `String` | `String` |\n\nVulkan has the following APIs to group commands:\n\n| EXTENSION / VERSION | PUSH | POP |\n|-------------------------------------------------------------------------------------------------------------------------------|-------------------------|------------------------|\n| [VK_EXT_debug_marker](https://github.com/KhronosGroup/Vulkan-Docs/blob/1.0/doc/specs/vulkan/chapters/VK_EXT_debug_marker.txt) | `glPushDebugGroupKHR()` | `glPopDebugGroupKHR()` |"]]