DE102015006750A1 - Abtasten, fehlerverwaltung und/oder kontextwechsel über eine rechnerpipeline - Google Patents

Abtasten, fehlerverwaltung und/oder kontextwechsel über eine rechnerpipeline Download PDF

Info

Publication number
DE102015006750A1
DE102015006750A1 DE102015006750.8A DE102015006750A DE102015006750A1 DE 102015006750 A1 DE102015006750 A1 DE 102015006750A1 DE 102015006750 A DE102015006750 A DE 102015006750A DE 102015006750 A1 DE102015006750 A1 DE 102015006750A1
Authority
DE
Germany
Prior art keywords
texture
pipeline
graphics
page fault
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102015006750.8A
Other languages
English (en)
Inventor
John A. Tsakok
Jayanth N. Rao
Brandon L. Fliflet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102015006750A1 publication Critical patent/DE102015006750A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)

Abstract

Vorrichtungen, Systeme und Verfahren können Texturen abtasten, einen Seitenfehler verwalten und eine dem Seitenfehler zugehörigen Kontext auswechseln. Eine dreidimensionale (3D) Grafikpipeline kann Standortdaten des Texturabtastens bereitstellen, die einer Textur entsprechen, wobei ein Abtasten der Textur außerhalb der 3D-Grafikpipeline ausgeführt wird. Eine Rechnerpipeline kann das Abtasten der Textur mithilfe der Standortdaten des Texturabtastens ausführen und Ergebnisdaten des Texturabtastens bereitstellen, die der Textur entsprechen, wobei die 3D-Grafikpipeline mithilfe der Ergebnisdaten des Texturabtastens ein Einzelbild aufbaut. Die Rechnerpipeline kann einen Seitenfehler verwalten, wobei der Seitenfehler und/oder das Verwalten des Seitenfehlers vor einer Grafikanwendung verborgen werden können. Außerdem kann die Rechnerpipeline einen dem Seitenfehler zugehörigen Rechnerkontext auswechseln, um zu erlauben, dass eine Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, ausgeführt werden kann und/oder um eine Blockierung zu verhindern.

Description

  • HINTERGRUND
  • Eine dreidimensionale Grafikpipeline (3D-Grafikpipeline) kann ein Abtasten ausführen. Die 3D-Grafikpipeline kann Texturkoordinaten in einem Pixelschattierer berechnen, die Koordinaten für ein Abtasten an eine Abtasteinheit senden, Pixeldaten von der Abtasteinheit in dem Pixelschattierer empfangen und eine Ausgabe von dem Schattierer an ein Wiedergabeziel zurückgeben. Ein 3D-Kontext, der zu einem Seitenfehler gehört, kann jedoch nicht ohne Wartezeit ausgewechselt werden. Zum Beispiel kann ein Fehler beim Lesen einer Textur einen Grafikprozessor (Graphics Processing Unit, GPU) anhalten und keinen Fortschritt auf andere Hardwarekontexte erlauben, bis ein ausreichender Fortschritt gemacht wurde, um ein Beenden einer aktuellen grafischen Grundform zu erreichen. Daher kann ein relativ großes Polygon, das eine große Anzahl von Seitenfehlern aufweist, eine Blockierung verursachen. Zum Beispiel kann in einer gefensterten Anwendung ein 3D-Hardwarekontext, der eine grafische Benutzeroberfläche (Graphical User Interface, GUI) wiedergibt, nicht eingeplant werden und kann dazu führen, dass eine Plattform nicht reagiert, wenn ein Fehler erkannt wird.
  • Verwaltungssysteme für Textur- und Seitentabellen können in einer Anwendung (z. B., MegaTextures von id Software) oder in einer Treibererweiterung (z. B., AMD_sparse_texture von Advanced Micro Devices Inc. oder Tiled Textures von Microsoft Corporation) umgesetzt werden, um eine Untergruppe von Texturen in den Speicher für eine Wiedergabe eines aktuellen Einzelbildes/einer aktuellen Ansicht in eine Seite einzufügen (dauerhaft in einen Speicher aufbewahren). Umfangreiche Änderungen bei einer Anwendung, einer Anwendungsprogrammierschnittstelle (Application Programming Interface, API) und/oder einem Treiber können jedoch erforderlich sein, um die Systeme zu unterstützen. Außerdem kann es notwendig sein, dass eine Grafikanwendung seitenerkennend und/oder fehlererkennend ist, wobei der Schattierer nach Fehlercodes sucht, die von der Abtasteinheit zurückgegeben werden, und fehlende Seitenkennungen in einen Pufferspeicher schreibt (z. B. ungeordnete Zugangsansicht), um dem Hostcode der Anwendung zu erlauben, die fehlenden Seiten hochzuladen. Darüber hinaus kann die Anwendung, wenn sie keine Hardwareunterstützung für gekachelte Ressourcen aufweist, ein Unterteilen von Texturen in Kacheln mit geeigneten Rändern erfordern, um ein Filtern und relativ komplexes Seitensuchen in dem Schattierer zu erlauben. Der Schattierer kann auch erforderlich sein, um Filterfunktionen der Hardwareabtasteinheit zu überbrücken und mithilfe einer Ausführungseinheit (Execution Unit, EU) Anweisungen zu berechnen, da eine GPU den Aufenthaltsort von MIP-Maps und/oder benachbarten Texturen in einem softwareverwalteten Cachespeicher für Texturen nicht kennen muss.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die zahlreichen Vorteile der Ausführungsformen der vorliegenden Erfindung werden dem Fachmann durch das Lesen der nachfolgenden Beschreibung und der angefügten Ansprüche sowie durch den Bezug auf die nachfolgenden Zeichnungen offensichtlich, in denen:
  • 1 ein Blockschaltbild eines Beispiels einer Vorrichtung für ein Abtasten, eine Fehlerverwaltung und/oder einen Kontextwechsel gemäß einer Ausführungsform ist;
  • 2 ein Ablaufplan eines Beispiels eines Verfahrens für ein Abtasten, eine Fehlerverwaltung und/oder einen Kontextwechsel gemäß einer Ausführungsform ist;
  • 3 ein Ablaufplan eines Beispiels eines Verfahrens für ein Abtasten, eine Fehlerverwaltung und/oder einen Kontextwechsel gemäß einer Ausführungsform ist;
  • 4 ein Blockschaltbild eines Beispiels eines Computersystems für ein Abtasten, eine Fehlerverwaltung und/oder einen Kontextwechsel gemäß einer Ausführungsform ist;
  • 5 ein Blockschaltbild eines Beispiels eines Systems ist, das gemäß einer Ausführungsform eine dreidimensionale Pipeline (3D-Pipeline) und eine Rechnerpipeline enthält; und
  • 6 ein Blockschaltbild eines Beispiels eines Systems ist, das gemäß einer Ausführungsform einen kleinen Formfaktor aufweist.
  • DETAILLIERTE BESCHREIBUNG
  • 1 zeigt eine Vorrichtung 100 für ein Abtasten, eine Fehlerverwaltung und/oder einen Kontextwechsel gemäß einer Ausführungsform. Die Vorrichtung 100 kann eine Computerplattform umfassen wie zum Beispiel einen Laptop, einen persönlichen Datenassistenten (Personal Digital Assistant, PDA), ein drahtloses Smartphone, einen Media-Content-Player, ein Bildverarbeitungsgerät, ein mobiles Internet-Gerät (Mobile Internet Device, MID), einen Server, eine Spielkonsole, einen tragbaren Computer, jedes Smartgerät wie zum Beispiel ein Smartphone, ein Smarttablet, ein Smart-TV und so weiter oder jede Kombination davon. Die Vorrichtung 100 kann einen oder mehrere Prozessoren umfassen wie zum Beispiel einen Zentralprozessor (Central Processing Unit, CPU), einen Grafikprozessor (Graphics Processing Unit, GPU, auf den auch als optischer Verarbeitungsprozessor (Visual Processing Unit, VPU) Bezug genommen wird), und so weiter oder Kombinationen davon. In einem Grafikausführungsmodell kann die Vorrichtung 100 einen oder mehrere Hosts (z. B. CPU usw.) umfassen, um eine oder mehrere Rechnereinrichtungen (z. B. CPU, GPU/VPU usw.) zu steuern, wobei jede Rechnereinrichtung ein oder mehrere Rechnereinheiten (z. B. Kern; Einheiten mit einer Anweisung für mehrere Daten, usw.) umfassen kann, die eine oder mehrere Ausführungselemente aufweist, um weiter unten erörterte Funktionen auszuführen.
  • Die Vorrichtung 100 umfasst eine Anwendung 110 wie zum Beispiel eine dreidimensionale Grafikanwendung (3D-Grafikanwendung), die in einem Datenaustausch mit einer oder mehreren Pipelines steht, um eine Grafikaufgabe einschließlich zum Beispiel einer Wiedergabe eines Partikeleffekts, einer Wiedergabe einer Schattenabbildung, eines Abtastens einer Textur, eines Aufbauens eines Einzelbildes, eines Anzeigens eines Einzelbildes und so weiter auszuführen. Es ist nicht erforderlich, dass die Anwendung 110 seitenerkennend und/oder fehlererkennend ist, wobei ein Seitenfehler und/oder eine Verwaltung der Seitenfehler vor der Anwendung 110 verborgen werden kann. Außerdem kann der Seitenfehler keine Blockierung verursachen, da ein dem Seitenfehler zugehöriger Kontext (z. B. Fehlerkontext) ausgewechselt (z. B. im Wesentlichen sofort ausgewechselt) werden kann, ohne auf einen ausreichenden Fortschritt zu warten, um das Beenden einer aktuellen grafischen Grundform zu erreichen, wodurch erlaubt wird, dass eine andere Grafikaufgabe (die z. B. kein Texturabtasten beinhaltet, nicht einem Fehler zugehörig ist usw.) ausgeführt wird.
  • Die Anwendung 110 kann in einem Datenaustausch mit einer dreidimensionalen (3D-)Grafikpipeline 112 stehen, um ein Einzelbild für eine Anzeige aufzubauen. Das Einzelbild kann zum Beispiel einer 3D-Wiedergabe einer Szene und/oder eines Videospiels, einer Tabellenkalkulation, einem Text (z. B. Rich Text usw.), einer Auszeichnungssprache (z. B. Hypertext Markup Language, Extensible Markup Language usw.), einem Bild (z. B. Joint Photographic Experts Group Daten, JPEG-Daten usw.), einem Video (z. B. Moving Picture Experts Group Daten, MPEG-Daten usw.) und so weiter oder einer Kombination davon entsprechen. Außerdem kann das Einzelbild einer gefensterten Anwendung einschließlich zum Beispiel einer grafischen Benutzeroberfläche (Graphical User Interface, GUI) entsprechen. Das Einzelbild kann auch einer Anwendung entsprechen, die eine Fähigkeit für eine relativ hohe Bildwiederholrate (z. B. ungefähr 30 Bilder pro Sekunde) erfordert. Die Vorrichtung 100 kann das Einzelbild anzeigen, nachdem die 3D-Grafikpipeline 112 das Einzelbild zum Beispiel über einen Flüssigkristallbildschirm (Liquid Crystal Display, LCD), einen Leuchtdiodenbildschirm (Light Emitting Diode display, LED-Bildschirm), einen berührungsempfindlichen Bildschirm und so weiter aufgebaut hat.
  • Die 3D-Grafikpipeline 112 kann eine 3D-Schnittstelle zur Anwendungsprogrammierung (Application Programming Interface, API) wie zum Beispiel eine Open Graphics Library API (OpenGL®, eine Marke der Silicon Graphics, Inc.), eine Direct3D API (Direct3D®, eine Marke der Microsoft Corporation), und so weiter unterstützen. Die Anwendung 110 kann zum Beispiel eine 3D-API verwenden, um Befehle zu verarbeiten und ein Einzelbild aufzubauen, indem ein 3D-Kontext erzeugt wird, der einem Zustand einer 3D-Pipeline für eine Arbeitsbelastung entspricht. Die Anwendung 110 kann zum Beispiel OpenGL verwenden, indem ein OpenGL-Kontext erzeugt wird, der einer Zustandsmaschine entspricht, die Daten in Bezug auf die Wiedergabe der Anwendung 110 speichert. Außerdem umfasst die dargestellte 3D-Grafikpipeline 112 ein Standortmodul zum Texturabtasten 114, um Standortdaten für das Texturabtasten bereitzustellen, die einer Textur wie zum Beispiel den Informationen entsprechen, die für das Abtasten der Textur genutzt werden (z. B. Texturkoordinaten und/oder Gradienten für ein Ermitteln des Standorts in einer Textur, die abgetastet werden soll). Das Standortmodul zum Texturabtasten 114 kann zum Beispiel in dem Quellcode für die Anwendung 110 enthalten sein, als eine Erweiterung für die Anwendung 110 enthalten sein, in einem Treiber umgesetzt sein, mindestens teilweise in einer Hardware mit festgelegter Funktionalität und so weiter oder in Kombinationen davon umgesetzt sein.
  • Das Standortmodul zum Texturabtasten 114 kann einen Pufferspeicher für Abtastinformationen erzeugen, um die Standortdaten für das Texturabtasten aufzubewahren einschließlich zum Beispiel einer Texturkoordinate, einer uv-Koordinate, einem Gradienten (z. B. dx/dy), einer Texturbehandlung, einem Detaillierungsgrad (Level Of Detail, LOD) und so weiter oder Kombinationen davon. Der Pufferspeicher für Abtastinformationen kann als eine Schicht in einem G-Pufferspeicher enthalten sein, der mehrere Schichten aufweist, um Grafikdaten wie zum Beispiel Positionen, Normalen, Schattierungsparameter usw. aufzubewahren. Der G-Pufferspeicher kann in einem verzögerten Schattierungsprozess erzeugt werden, wobei die Geometrie in einem einzigen Schritt verarbeitet wird, um den G-Pufferspeicher auszugeben, und außerdem werden Schritte als zweidimensionale (2D) Nachverarbeitungsschritte ausgeführt, um das endgültige Einzelbild aufzubauen. Es wird darauf hingewiesen, dass ein Abtasten einer Textur außerhalb der 3D-Grafikpipeline 112 ausgeführt werden kann, was einem Vorgang entspricht, der Texturkoordinaten und/oder Gradienten verwendet, um Informationen für eine Textur wie zum Beispiel Farbdaten abzurufen. Bei einem Beispiel können Fragmente außerhalb der 3D-Grafikpipeline 112 verarbeitet werden, um Ergebnisdaten eines Texturabtastens (z. B. eine Farbe usw.) zu erzeugen, indem eine Textur mithilfe der Standortdaten für das Texturabtasten (z. B. Texturkoordinaten, Pufferspeicher für Abtastinformationen usw.) abgetastet wird.
  • Dementsprechend umfasst die Vorrichtung 100 eine Rechnerpipeline 126, um ein Abtasten außerhalb der 3D-Grafikpipeline 112 auszuführen und/oder um Ergebnisdaten des Texturabtastens für eine Verwendung durch die 3D-Grafikpipeline 112 zum Aufbauen eines Einzelbildes bereitzustellen. Die Rechnerpipeline 126 kann eine Rechner-API wie zum Beispiel eine Open Computing Language API (OpenCL®, eine Marke der Apple Inc.), eine Compute Shader API (was z. B. Direct3D erweitert), eine Compute Unified Device Architecture API (CUDATM, eine Marke der NVIDIA Corporation) und so weiter unterstützen. Die Anwendung 110 kann zum Beispiel eine Rechner-API verwenden, um ein Abtasten auszuführen und um Ergebnisdaten des Texturabtastens bereitzustellen, indem ein Rechnerkontext erzeugt wird. Die Anwendung 110 kann zum Beispiel OpenCL verwenden, indem ein OpenCL-Kontext erzeugt wird, der einer Rechnereinrichtung (z. B. CPU, GPU/VPU usw.) erlaubt, einen Kernel (z. B. jeder Kernel kann eine aus einem Programm entnommene Funktion einkapseln) auszuführen (und/oder laufen zu lassen) und/oder Daten zu übertragen. Auf diese Weise kann mithilfe der Rechnerpipeline 126 eine Grafikaufgabe (z. B. Abtasten) in Arbeiten (z. B. Kernels usw.) aufgeteilt werden, die parallel durch ein oder mehrere Ausführungselemente (z. B. Arbeitspunkte, Threads usw.) auszuführen sind, wobei ein oder mehrere Ausführungselemente in einem oder mehreren Elementblöcken (z. B. Untergruppe, Kette usw.) einer Elementgruppe (z. B. Arbeitsgruppe, Thread-Block usw.) zusammen gruppiert werden können und wobei eine Elementgruppe in dem Grafikausführungsmodell auf einer GPU/Rechnereinrichtung 134 ausgeführt werden kann.
  • Die dargestellte Rechnerpipeline 126 umfasst ein Ergebnismodul für das Texturabtasten 128, um ein Abtasten der Textur auszuführen, indem die Standortdaten für das Texturabtasten verwendet werden, und/oder um Ergebnisdaten des Texturabtastens bereitzustellen, die der Textur entsprechen. Bei einem Beispiel kann das Ergebnismodul für das Texturabtasten 128 die Standortdaten für das Texturabtasten lesen und/oder empfangen, um das Abtasten auszuführen. Das Ergebnismodul für das Texturabtasten 128 kann zum Beispiel OpenCL-Kernel erzeugen, um das Abtasten auszuführen, wobei die OpenCL-Kernel durch Arbeitspunkte ausgeführt werden, die in Arbeitsgruppen zusammengefasst sind, die in der GPU/Rechnereinrichtung 134 ausgeführt werden. Das Ergebnismodul für das Texturabtasten 128 kann zum Beispiel den Pufferspeicher für Abtastinformationen lesen, um die OpenCL-Kernel zu erzeugen, die den Standortdaten für das Texturabtasten zugeordnet sind. Das Ergebnismodul für das Texturabtasten 128 kann zum Beispiel in dem Quellcode für die Anwendung 110 enthalten sein, als eine Erweiterung für die Anwendung 110 enthalten sein, in einem Treiber umgesetzt sein, mindestens teilweise in einer Hardware mit festgelegter Funktionalität und so weiter oder in Kombinationen davon umgesetzt sein.
  • Das Ergebnismodul für das Texturabtasten 128 kann der 3D-Grafikpipeline 112 das Ergebnis des Abtastens (z. B. die Ergebnisdaten des Texturabtastens) bereitstellen. Das Ergebnismodul für das Texturabtasten 128 kann zum Beispiel einen Pufferspeicher für die Texturschicht erzeugen, der die Ergebnisdaten des Texturabtastens enthält, die als Schicht in den G-Pufferspeicher eingefügt und für ein Beenden der verzögerten Schattierung verwendet werden können. Bei einem Beispiel kann ein Wiedergabemodul 116 der 3D-Grafikpipeline das Einzelbild mithilfe der Ergebnisdaten des Texturabtastens aufbauen, indem der Pufferspeicher für die Texturschicht gelesen wird und/oder indem die von dem Ergebnismodul für das Texturabtasten 128 bereitgestellten Ergebnisdaten des Texturabtastens empfangen werden. Das Wiedergabemodul 116 kann zum Beispiel in dem Quellcode für die Anwendung 110 enthalten sein, als eine Erweiterung für die Anwendung 110 enthalten sein, in einem Treiber umgesetzt sein, mindestens teilweise in einer Hardware mit festgelegter Funktionalität und so weiter oder in Kombinationen davon umgesetzt sein.
  • Die Rechnerpipeline 126 umfasst ein Fehlerverwaltungsmodul 130, um zum Beispiel einen Seitenfehler zu verwalten, der vor dem Bereitstellen der Ergebnisdaten des Texturabtastens in der 3D-Grafikpipeline erkannt wurde. Zum Beispiel kann der Seitenfehler erkannt werden, wenn auf eine Seite wegen einer Textur zugegriffen wird, die nicht in einem physischen Speicher wie zum Beispiel einem Grafikspeicher vorhanden (z. B. geladen) ist. Es wird darauf hingewiesen, dass ein Abtasten innerhalb der Rechnerpipeline 126 ein Abtasten einer virtuellen Textur umfassen kann, für die nicht garantiert werden kann, dass sie in einem physischen Speicher vorhanden ist. Auf diese Weise kann der Seitenfehler erkannt werden, wenn auf eine Seite in Bezug auf eine virtuelle Textur zugegriffen wird, für die nicht garantiert werden kann, dass sie in einem Speicher vorhanden ist. Anstatt einen ganzen Arbeitssatz von Texturen in eine Seite einzufügen und/oder anstatt zu fordern, dass ein Teilsatz von Texturen in einem Speicher dauerhaft vorhanden ist, kann das Fehlerverwaltungsmodul 130 verwendet werden, um Teile der virtuellen Texturen in eine Seite einzufügen (z. B., dass sie dauerhaft vorhanden sind), wobei die Teile wirklich benötigt werden, wie zum Beispiel genaue Texel, die einer aktuellen gelesenen Textur zugehörig sind. Auf diese Weise können die Texturen verwendet werden, die eine relativ hohe Auflösung aufweisen, ohne dass sie vollständig dauerhaft in einem Speicher vorhanden sind und/oder ohne dass Ressourcen wie zum Beispiel ein physischer Speicher vergeudet werden.
  • Darüber hinaus können Plattformen, die für Texturen nur einen kleineren physischen Speicher in Bezug auf die Größe der Texturen zuordnen können, Vorteile aus der Rechnerpipeline 126 erlangen. Zum Beispiel können relativ große Texturen (z. B. aus Hunderten von Megabits, aus Gigabits, die größer sind als der zugeordnete physische Speicher usw.) nicht in der Lage sein, vollständig dauerhaft in einem Speicher vorhanden zu sein, während für das Abtasten nur ein Teilsatz von Texturen notwendig sein kann. Folglich kann ein Texturstreaming, das ein Einfügen genauer Anteile von Texturen in eine Seite benötigt, um ein aktuelles Einzelbild wiederzugeben, das z. B. aus einem Texturlesen und/oder einem Seitenfehler ermittelt wird, durch das Fehlerverwaltungsmodul 130 umgesetzt werden, um ein Abtasten anzupassen, bei dem für die Wiedergabe benötigte Anteile von Texturen aktuell wirklich (z. B. auf Anfrage) benötigt werden. Außerdem kann ein Texturstreaming durch das Fehlerverwaltungsmodul 130 umgesetzt werden, um ein Abtasten anzupassen, bei dem für die Wiedergabe benötigte Anteile von Texturen, die wirklich benötigt werden, in relativ großen Texturen (die z. B. größer als ein zugeordneter physischer Speicher sind) dauerhaft vorhanden sind. Das Fehlerverwaltungsmodul 130 kann zum Beispiel in einer OS-Fehlerbehandlungseinheit, einem Steuerprogramm und/oder einem Treiberquellcode enthalten sein, als eine Erweiterung für die OS-Fehlerbehandlungseinheit, das Steuerprogramm und/oder den Treiber enthalten sein, mindestens teilweise in einer Hardware mit festgelegter Funktionalität und so weiter oder in Kombinationen davon umgesetzt sein.
  • Dementsprechend ist es möglicherweise nicht erforderlich, dass die Anwendung 110 seitenerkennend und/oder fehlererkennend ist, wobei der Seitenfehler, die Verwaltung der Seitentabellen und/oder eine Verwaltung der Seitenfehler vor der Anwendung 110 verborgen werden kann. Darüber hinaus können Frameworks für einen gemeinsam genutzten virtuellen Speicher (Shared Virtual Memory, SVM) genutzt werden, um ein Texturstreaming zu unterstützen. Das Texturstreaming kann zum Beispiel mithilfe eines Intel SVM (Intel®, einer Marke der Intel Corporation) unterstützt werden, der es einer CPU und einer GPU erlauben kann, einen gemeinsamen Speicher aufzuweisen (z. B. werden die Adressen der CPU und der GPU vereinigt (z. B. 64 Bit)), welcher der GPU einen Fehler bei einem Speicherzugriff erlauben kann, wenn die Texturen nicht dauerhaft vorhanden sind, und der erlauben kann, dass ein Seitenfehler durch ein OS/einen Treiber verwaltet/behandelt wird (z. B. ein Einfügen einer Textur in eine Seite, ein Reparieren des Seitenfehlers usw.). Auf diese Weise kann eine GPU eine fehlbare Rechnerpipeline 126 umfassen, die virtuelle Texturen mithilfe eines SVM unterstützt.
  • Die Rechnerpipeline 126 umfasst auch ein Kontextwechselmodul 132, um einen Rechnerkontext auszuwechseln, der einem Seitenfehler (z. B. einem fehlerhaften Rechnerkontext) zugeordnet ist. Zum Beispiel kann das Kontextwechselmodul 132, anstatt auf ein Reparieren des Seitenfehlers (z. B. das Einfügen aktuell benötigter Anteile von Texturen in die Seite) und/oder auf einen Fortschritt zu warten, der erzielt werden muss, um ein Beenden einer aktuellen Grundform für einen Wechsel zu erreichen, den fehlerhaften Rechnerkontext auswechseln, um der GPU/Rechnereinrichtung 134 das Verrichten weiterer Arbeiten zu erlauben. Das Kontextwechselmodul 132 kann zum Beispiel von dem fehlerhaften Rechnerkontext auf einen anderen Rechnerkontext wechseln. Das Kontextwechselmodul 132 kann auch zurück auf einen fehlerhaften Rechnerkontext wechseln, wenn ein diesem Kontext zugehöriger Fehler repariert wurde (z. B. wenn aktuell benötigte Anteile von Texturen auf der Seite eingefügt wurden).
  • Bei einem Beispiel kann das Kontextwechselmodul 132 von einem ersten fehlerhaften Rechnerkontext zu einem zweiten Rechnerkontext wechseln z. B. für eine Rechnergrafikaufgabe wie zum Beispiel ein Abtasten über eine Rechnerpipeline 126, wobei das Kontextwechselmodul 132 nachfolgend auch von dem zweiten Rechnerkontext wechseln kann, wenn der zweite Rechnerkontext einem Seitenfehler zugeordnet wird. In diesem Zusammenhang kann das Kontextwechselmodul 132 von dem zweiten Rechnerkontext, der einen Fehler aufweist, auf einen anderen Rechnerkontext wie zum Beispiel einen dritten Rechnerkontext (z. B. für eine Rechnergrafikaufgabe), den ersten Rechnerkontext, der vorher einen Fehler aufwies, wenn der Fehler repariert wurde, und so weiter wechseln. Wie unten erörtert wird, kann das Kontextwechselmodul 132 auch von einem fehlerhaften Rechnerkontext auf eine 3D-Grafikaufgabe der 3D-Pipeline 112 wechseln.
  • Dadurch, dass die GPU/Rechnereinrichtung 134 nicht blockiert wird, können dementsprechend weitere Arbeiten von anderen Kontexten ausgeführt werden, die nicht von den fehlerhaften Daten abhängig sind. Die Anwendung 110 kann zum Beispiel eine Wiedergabe von anderen Teilen des Einzelbildes wie zum Beispiel Partikel, Schattenabbildungen usw. ausführen, während eine Seite repariert wird (z. B. eine Reparatur in die Seite eingefügt wird). Bei einem Beispiel, das sich auf eine gefensterte Anwendung bezieht, kann eine 3D-Grafikaufgabe die zugehörig ist zu einem 3D-Hardwarekontext, der eine GUI wiedergibt, so geplant werden, dass eine Fensterblockierung verhindert wird und die Reaktionsfähigkeit beibehalten wird, z. B. wenn ein Seitenfehler erkannt und repariert wird (z. B. wenn genaue Anteile von Texturen, die wirklich zum Beheben des Seitenfehlers benötigt werden, in die Seite eingefügt werden). Das Kontextwechselmodul 132 kann zum Beispiel in einer OS-Fehlerbehandlungseinheit, einem Steuerprogramm und/oder einem Treiberquellcode enthalten sein, als eine Erweiterung für die OS-Fehlerbehandlungseinheit, das Steuerprogramm und/oder den Treiber enthalten sein, mindestens teilweise in einer Hardware mit festgelegter Funktionalität und so weiter oder in Kombinationen davon umgesetzt sein. Das Kontextwechselmodul 132 kann zum Beispiel einer Hardware (z. B. einem Logikschaltkreis usw.) auf der GPU/Rechnereinrichtung 134 zugeordnet werden, um einen Kontextwechsel mit relativ hoher Leistungsfähigkeit zu ermöglichen.
  • Die Rechnerpipeline 126 kann einen oder mehrere Regulierungsmechanismen umsetzen, um der Rechnerpipeline 126 zu erlauben, (z. B. mit einem 3D-Hauptthread) an die 3D-Grafikpipeline angeglichen zu werden. Die Rechnerpipeline 126 kann einen LOD-Bias so umsetzen, dass relativ gröbere MIP-Map-Grade verwendet werden, um die Bandbreitenanforderung zu verringern und um das Abtasten relativ zu beschleunigen. Die Standortdaten für das Texturabtasten können LODs enthalten, die einem LOD-Bias entsprechen, wobei das Abtasten durch die Rechnerpipeline 126 gemäß dem LOD-Bias umgesetzt wird. Ebenso muss die Rechnerpipeline 126 nicht darauf warten, dass ein vollständiger Pufferspeicher für Abtastinformationen beendet wird, indem anstatt alle Kernel gleichzeitig nur eine kleinere Gruppe von Kernel abgefertigt wird. Die Standortdaten des Texturabtastens können zum Beispiel der Rechnerpipeline 126 bereitgestellt werden, bevor der vollständige Pufferspeicher für Abtastinformationen erzeugt wurde, wobei die Rechnerpipeline 126 einen Teilsatz von Threads abfertigt, der den Standortdaten des Texturabtastens zugehörig ist. Außerdem kann eine relativ kleine Gruppe von Kernels abgefertigt werden, selbst wenn die gesamten Standortdaten des Texturabtasten für ein Einzelbild vorhanden sind. Zum Beispiel kann ein Abfertigen der Kernels gestoppt werden und die Rechnerpipeline 126 kann zu einem anderen Einzelbild (z. B. dem nächsten Einzelbild) gehen, wenn die 3D-Grafikpipeline 112 die Ergebnisdaten des Texturabtastens benötigt (z. B. zum Beenden eines aktuellen Einzelbildes), sogar wenn noch kein Kernel abgefertigt wurde.
  • Die 3D-Grafikpipeline 112 kann Teilergebnisse von der Rechnerpipeline 126 verwenden, um das Einzelbild zusammen mit Ergebnisdaten eines alternativen Texturabtastens von aufenthaltsgarantierten, relativ übergeordneten (z. B. gröberen) MIP-maps zu beenden, wenn die Ergebnisdaten des Texturabtasten nicht innerhalb eines vorbestimmten Zeitraums zur Verfügung stehen. Obwohl die Rechnerpipeline 126 als ein Streamingsystem verwendet werden kann, um erforderliche Anteile von Texturen so schnell wie möglich in eine Seite einzufügen und abzutasten (und/oder zu filtern), kann ein Ergebnismodul für ein alternatives Texturabtasten 118 der 3D-Grafikpipeline 112 Ergebnisdaten des alternativen Texturabtastens als ein Reservesystem erzeugen. Das Ergebnismodul für das alternative Texturabtasten 118 kann zum Beispiel in dem Quellcode für die Anwendung 110 enthalten sein, als eine Erweiterung für die Anwendung 110 enthalten sein, in einem Treiber umgesetzt sein, mindestens teilweise in einer Hardware mit festgelegter Funktionalität und so weiter oder in Kombinationen davon umgesetzt sein.
  • Bei einem Beispiel kann die 3D-Grafikpipeline 112 ein Einzelbild mithilfe der Ergebnisdaten des alternativen Texturabtastens aufbauen, wenn die Ergebnisdaten des Texturabtastens nicht zur Verfügung stehen, um eine gewünschte und/oder erforderliche Einzelbildfrequenz beizubehalten (z. B. eine Abtastarbeit kann nicht innerhalb eines vorbestimmten Zeitraums abgeschlossen werden, um die Einzelbildfrequenz aufrechtzuerhalten). Somit wartet ein 3D-Hauptthread möglicherweise nicht auf eine Arbeit von der Rechnerpipeline 126, um das Einzelbild aufzubauen. Außerdem kann das Ergebnismodul für das alternative Texturabtasten 118 Ergebnisdaten des Texturabtastens mit einer relativ niedrigeren Auflösung erzeugen, indem ein bekanntes vorhandenes übergeordnetes (z. B. gröberes) MIP-map einer virtuellen Textur abgetastet wird (z. B. eine virtuelle Textur, die einem aktuellen Seitenfehler zugehörig ist). Darüber hinaus kann die 3D-Grafikpipeline 112 gestreamte Ergebnisdaten des Texturabtastens einer Schicht mit einer relativ größeren Auflösung von der Rechnerpipeline 126 während eines Zeitraums einmischen, wenn die Ergebnisdaten des Texturabtastens verfügbar werden, um Bildfehler (z. B. kurzfristige Bildfehler) zu beheben.
  • Die 3D-Grafikpipeline 112 umfasst auch ein 3D-Grafikaufgabenmodul 120, um eine 3D-Grafikaufgabe auszuführen (z. B. das Nichteinbinden eines virtuellen Texturabtastens, das nicht einem Fehler zugeordnet ist, usw.). Bei einem Beispiel wird die 3D-Grafikaufgabe ausgeführt, wenn ein Seitenfehler verwaltet wird. Das 3D-Grafikaufgabenmodul 120 kann in einem Datenaustausch mit der GPU/Rechnereinrichtung 134 stehen, um andere Teile des Einzelbildes wiederzugeben, die unabhängig sind (z. B. keine virtuellen Texturen verwenden), wie zum Beispiel Partikeleffekte, Schattenabbildungen usw. Das 3D-Grafikaufgabenmodul 120 kann zum Beispiel in dem Quellcode für die Anwendung 110 enthalten sein, als eine Erweiterung für die Anwendung 110 enthalten sein, in einem Treiber umgesetzt sein, mindestens teilweise in einer Hardware mit festgelegter Funktionalität und so weiter oder in Kombinationen davon umgesetzt sein.
  • Die 3D-Grafikpipeline 112 umfasst auch ein Wartemodul 122, damit die 3D-Grafikpipeline 112 wartet (z. B. wartet, um das Einzelbild aufzubauen und keine andere Arbeit auszuführen, usw.) bis zum Beispiel das Fehlerverwaltungsmodul 130 den Seitenfehler repariert und/oder das Ergebnismodul für das Texturabtasten 128 die Ergebnisdaten des Texturabtastens bereitstellt. Bei einem Beispiel kann das Wartemodul 122 eine verzögerte Schattierung ermöglichen, indem das Wiedergabemodul 116 veranlasst wird, zu warten, bis der Pufferspeicher der Texturschicht und/oder die Ergebnisdaten des Texturabtastens von der Rechnerpipeline 126 empfangen wurden. Das Wartemodul 122 kann zum Beispiel in dem Quellcode für die Anwendung 110 enthalten sein, als eine Erweiterung für die Anwendung 110 enthalten sein, in einem Treiber umgesetzt sein, mindestens teilweise in einer Hardware mit festgelegter Funktionalität und so weiter oder in Kombinationen davon umgesetzt sein.
  • Das Wartemodul 122 kann keine Warteanweisung erzeugen und/oder die 3D-Grafikpipeline 112 kann die Warteanweisung ignorieren, wenn zum Beispiel ein vorbestimmter Zeitraum abgelaufen ist und/oder die Ergebnisdaten des alternativen Texturabtastens zur Verfügung stehen, um das Einzelbild aufzubauen. Die 3D-Grafikpipeline 112 kann zum Beispiel ungefähr 15 ms auf die Ergebnisdaten des Texturabtastens von der Rechnerpipeline 126 warten, wenn eine Einzelbildfrequenz ungefähr 60 Einzelbilder pro Sekunde (frames per second, fps) beträgt. Die 3D-Grafikpipeline 112 kann die Ergebnisdaten des alternativen Texturabtastens sofort nach Ablauf des vorbestimmten Zeitraums verwenden und/oder kann einen zusätzlichen vorbestimmten Zeitraum (z. B. 1 ms) warten, um nicht noch langer auf die Ergebnisdaten des Texturabtastens der Rechnerpipeline 126 zu warten und/oder die Ergebnisdaten des alternativen Texturabtastens zu verwenden. Bei einem Beispiel können die Ergebnisdaten des alternativen Texturabtastens aus einer nicht virtuellen Textur erzeugt werden (z. B. aus einer bekannten vorhandenen MIP-map-Version einer virtuellen Textur mit einer relativ niedrigen Auflösung).
  • Dementsprechend kann das Wartemodul 122 verwendet werden, um die 3D-Grafikpipeline 112 und die Rechnerpipeline 126 zu synchronisieren. Das Wartemodul 122 kann zum Beispiel den Pufferspeicher für Abtastinformationen und den Pufferspeicher für sich ergebende Texturschichten zwischen einem OpenGL-Kontext und einem OpenCL-Kontext synchronisieren, um sicherzustellen, dass die Standortdaten des Texturabtastens und die Ergebnisdaten des Texturabtastens in einer logischen Reihenfolge erzeugt und/oder verwendet werden. Bei einem Beispiel kann die Synchronisierung mithilfe eines Grand Central Dispatch (GCD) erreicht werden, das zum Beispiel auf einer OS-X-Plattform (OS X®, eine Marke der Apple Inc.) bereitgestellt wird. Die Synchronisierung kann auch mithilfe einer cl_khr_gl_event-Erweiterung (falls unterstützt) erreicht werden, um die Ressourcen zwischen GL und CL zu synchronisieren, indem die GL-Abgrenzungen mit den CL-Ereignissen verbunden werden. Eine Synchronisierung kann außerdem mithilfe eines ausdrücklichen Endes (z. B. GLFinish) erreicht werden, um die 3D-Grafikpipeline 112 und die Kontextpipeline 126 zu synchronisieren, wobei ein Risiko einer Treiberblockierung toleriert werden kann.
  • 2 zeigt ein Verfahren 200 für ein Abtasten, ein Verwalten eines Fehlers und/oder einen Kontextwechsel gemäß einer Ausführungsform. Das Verfahren 200 kann umgesetzt werden als ein Satz logischer Anweisungen, die in einem maschinen- oder computerlesbaren Speichermedium wie zum Beispiel einem Direktzugriffsspeicher (Random Access Memory, RAM), einem Nur-Lese-Speicher (Read Only Memory, ROM), einem programmierbaren ROM (PROM), einem Flashspeicher usw. in einer konfigurierbaren Logik wie zum Beispiel programmierbaren Logik-Arrays (Programmable Logic Arrays, PLAs), anwenderprogrammierbaren Gate-Arrays (Field Programmable Gate Arrays, FPGAs), komplexen programmierbaren Logikeinrichtungen (Complex Programmable Logic Devices, CPLDs), in einer Logikhardware mit fester Funktionalität mithilfe einer Schaltkreistechnologie wie zum Beispiel einem anwendungsspezifischen integrierten Schaltkreis (Application Specific Integrated Circuit, ASIC), einer CMOS oder Transistor-Transistor-Logik-Technologie (TTL-Technologie) oder beliebigen Kombinationen davon gespeichert werden. Zum Beispiel kann ein Computerprogrammcode, der die in dem Verfahren 200 gezeigten Vorgänge ausführt, in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen einschließlich einer objektorientierten Programmiersprache wie zum Beispiel C++ oder Ähnliche und herkömmlicher prozeduraler Programmiersprachen wie zum Beispiel der ”C”-Programmiersprache oder ähnlicher Programmiersprachen geschrieben sein. Darüber hinaus kann das Verfahren 200 mithilfe der hier erwähnten Schaltkreistechnologien umgesetzt werden.
  • Der dargestellte Prozessblock 240 umfasst ein Bereitstellen von Standortdaten des Texturabtastens, die einer Textur entsprechen, über eine dreidimensionale (3D-)Grafikpipeline, wobei ein Abtasten der Textur außerhalb der 3D-Grafikpipeline ausgeführt wird. Zum Beispiel kann die 3D-Grafikpipeline die oben erörterte 3D-Grafikpipeline 112 (1) umfassen. Auf diese Weise kann der Prozessblock 240 ein Erzeugen eines Pufferspeichers für Abtastinformationen, der die Standortdaten des Texturabtastens enthält, über die 3D-Grafikpipeline umfassen. Zum Beispiel kann der Prozessblock 240 ein Unterstützen über die 3D-Grafikpipeline einer 3D-Anwendungsprogrammierschnittstelle (3D Application Programming Interface, API) für eine Grafikbibliothek (Graphics Library, GL) umfassen, um einen Pufferspeicher für Abtastinformationen zu erzeugen, der Standortdaten des Texturabtastens wie zum Beispiel eine uv-Koordinate, einen Gradienten, eine Texturbehandlung, einen Detaillierungsgrad (Level Of Detail, LOD) und so weiter oder Kombinationen davon enthält.
  • Der dargestellte Prozessblock 242 umfasst ein Ausführen eines Abtastens über eine Rechnerpipeline mithilfe der Standortdaten des Texturabtastens. Zum Beispiel kann die Rechnerpipeline die oben erörterte Rechnerpipeline 126 (1) umfassen. Auf diese Weise kann der Prozessblock 242 ein Lesen des Pufferspeichers für Abtastinformationen über die Rechnerpipeline umfassen, um das Abtasten auszuführen und/oder um einen Pufferspeicher für eine Texturschicht zu erzeugen, der die Ergebnisdaten des Texturabtastens enthält. Zum Beispiel kann der Prozessblock 242 ein Unterstützen einer Rechner-API (z. B. eine OpenCL-API) über die Rechnerpipeline umfassen, um den Pufferspeicher für die Texturschicht zu erzeugen, der alle Daten in der Textur aufbewahrt, die für das Fertigstellen eines Einzelbildes (z. B. Farbdaten usw.) verwendet werden.
  • Der Prozessblock 242 kann ein Verwalten eines Seitenfehlers über die Rechnerpipeline umfassen, wobei der Seitenfehler und/oder das Verwalten des Seitenfehlers vor einer Grafikanwendung (z. B. einer 3D-Grafikanwendung) verborgen werden können. Es wird darauf hingewiesen, dass das Abtasten eine Textur umfassen kann, für die nicht garantiert ist, dass sie in einem Speicher vorhanden ist (z. B. eine virtuelle Textur). Somit kann die Rechnerpipeline, anstatt einen ganzen Arbeitssatz von Texturen in eine Seite einzufügen und/oder anstatt zu fordern, dass ein Teilsatz von Texturen in einem Speicher dauerhaft vorhanden ist, virtuelle Texturen in eine Seite einfügen (z. B., dass sie dauerhaft vorhanden sind), die wirklich (z. B. auf Anfrage) benötigt werden, wie zum Beispiel genaue Anteile von Texturen, die einer aktuellen gelesenen Textur zugehörig sind. Außerdem kann ein Texturstreaming umgesetzt werden, das ein Einfügen genauer Texturen in eine Seite beinhaltet, die benötigt werden, um ein aktuelles Einzelbild wiederzugeben, und die z. B. von einem Lesen einer aktuellen Textur und/oder einem Seitenfehler ermittelt wurden, um ein Abtasten anzupassen, bei dem die für die Wiedergabe notwendigen Anteile von Texturen gegenwärtig wirklich benötigt werden und/oder bei dem die für die Wiedergabe notwendigen Anteile von Texturen, die wirklich benötigt werden, in relativ großen Texturen (die z. B. größer als ein zugeordneter physischer Speicher sind) dauerhaft vorhanden sind.
  • Der Prozessblock 242 kann ein Auswechseln eines dem Seitenfehler zugehörigen Rechnerkontexts über die Rechnerpipeline umfassen, um zu erlauben, dass weitere Arbeiten ausgeführt werden und/oder um zu verhindern, dass die GPU-Einrichtung als Reaktion auf den Seitenfehler blockiert wird. Zum Beispiel kann die Rechnerpipeline, anstatt auf ein Reparieren des Seitenfehlers (z. B. das Einfügen benötigter Texturen in die Seite) und/oder einen Fortschritt zu warten, der erzielt werden muss, um ein Beenden einer aktuellen Grundform zu erreichen, den fehlerhaften Rechnerkontext auswechseln, um ein Ausführen (z. B. Planen, Auswechseln usw.) einer anderen Grafikaufgabe zu erlauben. Auf diese Weise muss die GPU-Einrichtung als Reaktion auf einen Seitenfehler nicht blockiert werden und es können weitere GPU-Arbeiten wie zum Beispiel eine Wiedergabe von Partikeleffekten, eine Wiedergabe von Schattenabbildungen usw. erlaubt werden, die von anderen Kontexten erledigt werden sollten, während die Seiten repariert werden. Bei einem Beispiel für eine gefensterte Anwendung kann die 3D-Grafikaufgabe, die einem 3D-Hardwarekontext zugeordnet ist, der eine GUI wiedergibt, eingeplant werden, um eine Fensterblockierung zu verhindern und die Reaktionsfähigkeit beizubehalten. Die Rechnerpipeline kann auch den ausgewechselten und/oder fehlerhaften Rechnerkontext für eine wieder aufgenommene Ausführung einplanen, wenn der Seitenfehler repariert ist (z. B. wenn genaue Anteile der Texturen, die wirklich benötigt werden, um den aktuellen Seitenfehler zu beheben, auf der Seite eingefügt wurden).
  • Der Prozessblock 242 kann ein Umsetzen eines Detaillierungsgrad-Bias (Level Of Detail bias, LOD-Bias) und/oder eine Abfertigung eines Thread-Teilsatzes über die Rechnerpipeline umfassen, um der Rechnerpipeline zu erlauben, dass sie an die 3D-Grafikpipeline angeglichen wird. Die Rechnerpipeline kann einen LOD-Bias so umsetzen, dass relativ gröbere MIP-Map-Grade verwendet werden, um die Bandbreitenanforderung zu verringern und um das Abtasten relativ zu beschleunigen. Ebenso muss die Rechnerpipeline nicht darauf warten, dass ein vollständiger Pufferspeicher für Abtastinformationen beendet wird, indem anstatt alle Kernel gleichzeitig nur eine kleinere Gruppe von Kernel abgefertigt wird. Außerdem kann die Rechnerpipeline relativ kleine Kernelgruppen abfertigen, sogar wenn die vollständigen Standortdaten vorhanden sind.
  • Der dargestellte Prozessblock 244 umfasst ein Bereitstellen von Ergebnisdaten des Texturabtastens, die der Textur entsprechen, über die Rechnerpipeline, wobei die 3D-Grafikpipeline mithilfe der Ergebnisdaten des Texturabtastens ein Einzelbild aufbaut. Auf diese Weise kann der Prozessblock 244 ein Lesen des Pufferspeichers für die Texturschicht über die 3D-Grafikpipeline umfassen, um das Einzelbild aufzubauen. Es ist selbstverständlich, dass die Prozessblöcke 240, 242 und/oder 244 einen oder mehrere Vorgänge in beliebiger Kombination umfassen können. Bei einem Beispiel kann das Verfahren 200 ein Ausführen einer Grafikaufgabe über die 3D-Grafikpipeline umfassen, wobei die Grafikaufgabe kein Texturabtasten beinhaltet (z. B. nicht ein Abtasten einer virtuellen Textur beinhaltet), wenn die 3D-Grafikpipeline die Standortdaten des Texturabtastens in dem Prozessblock 240 bereitstellt, wenn die Rechnerpipeline den Seitenfehler in dem Prozessblock 240 verwaltet und so weiter oder Kombinationen davon.
  • Bei einem weiteren Beispiel kann das Verfahren 200 ein Erzeugen von Ergebnisdaten des alternativen Texturabtastens über die 3D-Grafikpipeline umfassen, um das Einzelbild aufzubauen, wenn im Prozessblock 244 die Ergebnisdaten des Texturabtastens nicht innerhalb eines vorbestimmten Zeitraums zur Verfügung stehen. Zum Beispiel kann ein Abtasten eines dauerhaft vorhandenen gröberen MIP-map der Textur (z. B. Abtasten einer nicht virtuellen Textur, die einer virtuellen Textur entspricht) über die 3D-Grafikpipeline in dem Prozessblock 244 verrichtet werden, um die Ergebnisdaten des alternativen Texturabtastens zu erzeugen. Außerdem können die Prozessblöcke 240, 242 und/oder 244 ein Warten der 3D-Grafikpipeline umfassen, z. B. bis die Rechnerpipeline den Seitenfehler korrigiert hat, um das Einzelbild aufzubauen, wobei das Warten die 3D-Grafikpipeline mit der Rechnerpipeline ohne ein ausdrückliches Ende synchronisiert.
  • 3 zeigt jetzt ein Verfahren 300 für ein Abtasten, ein Verwalten eines Fehlers und/oder einen Kontextwechsel gemäß einer Ausführungsform. Das Verfahren 300 kann mithilfe jeglicher der hier erwähnten Technologien wie zum Beispiel einem Satz von Logikanweisungen umgesetzt werden, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind. Der dargestellte Prozessblock 350 kann einen Pufferspeicher für Abtastinformationen über die dreidimensionale (3D) Grafikpipeline erzeugen. Die 3D-Grafikpipeline kann zum Beispiel die oben erörterte 3D-Grafikpipeline 112 (1) umfassen. Der Pufferspeicher für Abtastinformationen kann dem Prozessblock 352 bereitgestellt werden, der den Pufferspeicher fair Abtastinformationen lesen kann und ein Abtasten über eine Rechnerpipeline ausführen kann. Die Rechnerpipeline kann zum Beispiel die oben erörterte Rechnerpipeline 126 (1) umfassen.
  • Im Block 354 kann ermittelt werden, ob ein Seitenfehler vorhanden ist, der dem Abtasten über die Rechnerpipeline zugeordnet ist. Der Seitenfehler kann zum Beispiel ein Lesen einer aktuellen Textur als eine virtuelle Textur beinhalten, für die nicht garantiert wird, dass sie dauerhaft in einem Speicher vorhanden ist und die wirklich nicht in einem Speicher dauerhaft vorhanden ist, aber der gelesenen Textur zugeordnet ist. Wenn kein Seitenfehler vorhanden ist, wird im Prozessblock 356 über die Rechnerpipeline ein Pufferspeicher für eine Texturschicht erzeugt, der die Ergebnisdaten des Texturabtastens (z. B. Farbe usw.) enthält. Wenn der Seitenfehler dem Abtasten zugeordnet ist, verwaltet und/oder repariert der Prozessblock 358 den Seitenfehler über die Rechnerpipeline. Der Prozessblock 358 kann zum Beispiel Anteile von Texturen oder genaue Texel in die Seite einfügen, wobei diese tatsächlich benötigt werden, um den Seitenfehler zu beheben, der als Reaktion auf z. B. das Lesen der aktuellen Textur und/oder den Seitenfehler ermittelt wurde. Außerdem kann der Prozessblock 360 den Kontext, der dem Seitenfehler zugeordnet ist, über die Rechnerpipeline auswechseln, um zu erlauben, dass eine andere Grafikaufgabe (die z. B. kein Texturabtasten beinhaltet, das einem beliebigen Kontext zugeordnet ist, der aktuell nicht auf einen Fehler wartet usw.) ausgeführt wird, um eine Blockierung als Reaktion auf den Seitenfehler zu verhindern. Sobald der Seitenfehler behoben ist, kann der fehlerhafte Kontext zurückgewechselt werden, um im Prozessblock 362 das Abtasten über die Rechnerpipeline wieder aufzunehmen. Die Ergebnisdaten des Texturabtastens, die im Prozessblock 356 über die Rechnerpipeline erzeugt wurden, können in einem Pufferspeicher für die Texturschicht aufbewahrt werden.
  • Währenddessen kann im Prozessblock 364 über die 3D-Rechnerpipeline eine 3D-Grafikaufgabe erzeugt werden. Die 3D-Grafikaufgabe kann im Prozessblock 366 über die 3D-Pipeline ausgeführt werden, wenn zum Beispiel die Rechnerpipeline den Seitenfehler verwaltet. Der Prozessblock 368 kann auf die 3D-Pipeline warten, zum Beispiel nachdem das Verarbeiten einer oder mehrerer 3D-Grafikaufgaben im Prozessblock 366 beendet wurde. Im Block 370 kann ermittelt werden, ob der Pufferspeicher für die Texturschicht der 3D-Grafikpipeline nach einem Zeitraum bereitgestellt werden soll, der größer ist als ein vorbestimmter Zeitraum. Wenn dies der Fall ist, erzeugt der Prozessblock 372 Ergebnisdaten eines alternativen Texturabtastens und/oder stellt die Ergebnisdaten des alternativen Texturabtastens dem Prozessblock 376 über die 3D-Pipeline bereit, wobei der Prozessblock 376 das Einzelbild mithilfe der Ergebnisdaten des alternativen Texturabtastens über die 3D-Pipeline aufbaut (z. B. beendet). Wenn dies nicht der Fall ist, liest der Prozessblock 374 den Pufferspeicher für die Texturschicht und stellt dem Prozessblock 376 die Ergebnisdaten des Texturabtastens bereit, um das Einzelbild mithilfe der Ergebnisdaten des Texturabtastens über die 3D-Pipeline aufzubauen. Außerdem können die Ergebnisdaten des alternativen Texturabtastens und die Ergebnisdaten des Texturabtastens zusammen verwendet werden, indem zum Beispiel ein Mischvorgang über die 3D-Pipeline umgesetzt wird.
  • In 4 wird jetzt ein Blockschaltbild eines Computersystems 600 gemäß einer Ausführungsform gezeigt. Das Computersystem 600 kann Teil einer mobilen Plattform sein wie zum Beispiel eines Laptops, einer PDA, eines drahtlosen Smartphones, eines Media-Players, eines Bildverarbeitungsgerätes, eines MID, einer Spielkonsole, eines tragbaren Computers, eines beliebigen Smartgeräts wie zum Beispiel eines Smartphones, eines Smart-Tablets und so weiter oder jeder beliebigen Kombination davon. Das Computersystem 600 kann auch Teil einer festen Plattform sein wie zum Beispiel eines Personal Computers (PC), eines Smart-TV, eines Servers, einer Workstation usw. Das dargestellte Computersystem 600 umfasst eine oder mehrere CPUs (Zentralprozessoren) 676, eine Anzeigeeinheit 682, ein Festplattenlaufwerk 684 und einen Hauptspeicher 686, die zum Beispiel DDR-Module umfassen können. Die Module des Systemspeichers 686 können in ein einzelreihiges Speichermodul (Single In-line Memory Module, SIMM), ein doppelreihiges Speichermodul (Dual In-line Memory Module, DIMM), ein DIMM mit kleinen Abmessungen (Small Outline DIMM, SODIMM) und so weiter eingebunden sein.
  • Das Computersystem 600 kann einen Grafikbus (z. B. einen Steckplatz) 680 umfassen, wobei eine (nicht gezeigte) Grafikkarte, die einen Grafikprozessor (Graphics Processing Unit, GPU) 678 und einen zugeordneten Grafikspeicher 690 enthält, an den Grafikbus 680 angeschlossen (z. B. hinein gesteckt) werden kann. Der Grafikbus 680 könnte zum Beispiel einen PCI Expressgrafikbus (PCI Express Graphics, PEG, z. B. Peripheral Components Interconnect/PCI Express x16 Graphics 150W-ATX Specification 1.0, PCI Special Interest Group), einen beschleunigten Grafikanschlussbus (Accelerated Graphics Port, z. B. AGP V3.0 Interface Specification, September 2002) und so weiter umfassen. Die CPUs 676 können eine integrierte Speichersteuereinheit (integrated Memory Controller, iMC) 684 und einen oder mehrere (nicht gezeigte) Prozessorkerne aufweisen, um einen oder mehrere Treiber auszuführen, die dem Host-Betriebssystem (Operating System, OS) und/oder einer Anwendungssoftware zugeordnet sind, wobei jeder Kern mit Befehlsaufnahmeeinheiten, Befehlsdecodierern Cachespeichern der Ebene Eins (Level one cache, L1-Cachespeicher), Ausführungseinheiten und so weiter voll funktionsfähig sein kann. Die CPUs 676 können alternativ mit einer chipfremden Variation des iMC 683, die auch als Northbridge bekannt ist, über einen Vorderseitenbus in einem Datenaustausch stehen. Die dargestellten CPUs 676 stehen in einem Datenaustausch über einen Hub-Bus mit einem Eingabe/Ausgabe-Modul (Input/Output module, I/O-Modul) 692 in Verbindung, was auch als Southbridge bekannt ist. Auf den iMC 683, die CPUs 676 und das I/O-Modul 692 wird manchmal auch als ein Chipsatz Bezug genommen oder sie können zusammen als eine Ein-Chip-System-Architektur (System-On-Chip architecture, SoC-Architektur) umgesetzt werden.
  • Das dargestellte Computersystem 600 umfasst auch eine dreidimensionale (3D) Grafikpipeline 677. Zum Beispiel kann die 3D-Grafikpipeline 677 die oben erörterte 3D-Grafikpipeline 112 (1) umfassen. Somit kann die 3D-Grafikpipeline 677 zum Beispiel Standortdaten des Texturabtastens bereitstellen, die einer Textur entsprechen, wobei ein Abtasten der Textur außerhalb der 3D-Grafikpipeline ausgeführt wird. Das Computersystem 600 umfasst außerdem eine Rechnerpipeline 679. Zum Beispiel kann die Rechnerpipeline 679 die oben erörterte Rechnerpipeline 126 (1) umfassen. Somit kann die Rechnerpipeline 679 zum Beispiel mithilfe der Standortdaten für das Texturabtasten ein Abtasten der Textur ausführen und/oder die Ergebnisdaten des Texturabtastens bereitstellen, die der Textur entsprechen. Die 3D-Grafikpipeline 677 und die Rechnerpipeline 679 können in einer zugeordneten Grafik und/oder einem integrierten Grafikformat umgesetzt werden. Die 3D-Grafikpipeline 677, die Rechnerpipeline 679 und ein Bus können zum Beispiel Teil des gleichen Chips in einem integrierten Grafikformat sein. Jedoch können eine oder mehrere Komponenten der 3D-Grafikpipeline 677 und/oder der Rechnerpipeline 679 entfernt angeordnet sein wie zum Beispiel in der CPU 676.
  • Es wird darauf hingewiesen, dass die Rechnerpipeline 679 einen der Textur (z. B. einer virtuellen Textur) zugehörigen Seitenfehler verwalten kann, wenn eine Textur nicht dauerhaft in einem physischen Speicher wie zum Beispiel in dem Hauptspeicher 686, in dem zugeordneten Grafikspeicher 690 und so weiter oder Kombinationen davon vorhanden ist. Außerdem kann die Rechnerpipeline 679 einen fehlerhaften Kontext zum Beispiel auf einer EU-Befehlsebene auswechseln (z. B. indem eine relativ feinere Granularität bereitgestellt wird). Die Rechnerpipeline 679 kann auch die Hardwareabtasteinheit 681, die von der 3D-Grafikpipeline 677 und der Rechnerpipeline 679 gemeinsam genutzt wird, umfassen und/oder nutzen, um Texturen abzutasten. Auf diese Weise ist es nicht erforderlich, dass die Anwendung seitenerkennend und/oder fehlererkennend ist, wobei ein Seitenfehler und/oder eine Verwaltung der Seitenfehler vor der Anwendung verborgen werden kann. Außerdem muss der Seitenfehler keine Blockierung verursachen, da ein dem Seitenfehler zugehöriger Kontext (z. B. Fehlerkontext) ausgewechselt (z. B. im Wesentlichen sofort ausgewechselt) werden kann, ohne auf einen ausreichenden Fortschritt zu warten, um das Beenden einer aktuellen grafischen Grundform zu erreichen, wodurch erlaubt wird, dass eine andere Grafikaufgabe (die z. B. kein Texturabtasten beinhaltet, eine Grafikaufgabe, die einem Kontext zugehörig ist, der aktuell nicht auf einen Fehler wartet usw.) ausgeführt wird.
  • Außerdem kann die Verwendung der GPU-Hardware weitere Abtastvorteile erlauben wie zum Beispiel ein Unterstützen einer Filterung des nächsten Nachbarn, einer bilinearen Filterung, einer trilinearen Filterung, einer anisotropen Filterung usw. Auch eine Gradienteneingabe kann unterstützt werden und fehlende Texturformate oder ein LOD-Bias können unterstützt werden. Zum Beispiel kann ein tex3Dgrad unterstützt werden, um einen LOD für ein MIP-mapping und/oder eine Filterung zu unterstützen.
  • Darüber hinaus kann ein Komprimierungsvorteil auf Anfrage eine Dekomprimierung bei einer 16K × 16K-Granularität umfassen. Außerdem kann ein Abtasten einer im Speicher abgebildeten Netzwerkdatei verrichtet werden, die einen lokalen/fernen Server umfassen kann, um relativ große Texturen (z. B. Satellitenbilder) zu dekomprimieren. Auch ein Format (z. B. JPEG) kann dekomprimiert werden und mit einer Arbeitsgruppe über einen gemeinsam genutzten Speicher gemeinsam genutzt werden. Die Vorteile eines LOD-Reservesystems können einen Rückgriff auf eine garantierte dauerhaft vorhandene Seite umfassen, wenn eine Seite nicht fristgerecht gestreamt werden kann, indem relativ gröbere MIP-Ebenen als erwünschte (z. B. normale) Ebenen behandelt werden und/oder indem dauerhaft vorhandene MIP-maps garantiert werden. Wenn ein Schattierer fehlererkennend ist, kann auch eine nicht blockierende Abtastanweisung verwendet werden, um einen Fehler anzuzeigen, wenn das Abtasten einen Seitenfehler verursacht hat, um zu erlauben, dass der Schattierer eine relativ gröbere MIP-Ebene versucht. Die Streaming-Vorteile können ein Bereitstellen einer relativ kurzen Ladezeit (z. B. Startzeit) aufgrund eines relativ kurzen Texturvorladens umfassen. Es kann auch ein relativ dünner Client (z. B. für Netzwerkanwendungen) bereitgestellt werden und/oder die Texturbestände müssen auf einer Festplatte nicht erforderlich sein.
  • Außerdem kann ein WebKit verwendet werden. Zum Beispiel kann ein Wiedergabemodul eines Open-Source-WebKits der CPU 676 ermöglichen, Kacheln direkt an einen gemeinsam genutzten Speicher weiterzugeben, wobei die Kacheln und Bilder direkt über eine Abtasteinheit wie zum Beispiel die GPU-Hardwareabtasteeinheit 681 zugänglich sind, die fehlerhaft sein kann. Wenn ein Streaming nicht mit einer Einzelbildfrequenz schritthalten kann, kann ein 3D-Kontext (oder ein anderer Rechnerkontext) auch eine Prüffeldtextur anstatt eines LOD verwenden. Vorteile bei einer Geländewiedergabe umfassen eine relativ vereinfachte Geländewiedergabe, die relativ große Höhenabbildungen verwendet, indem von der Anwendung nicht gefordert wird, dass sie sichtbare Kacheln aufteilt oder einen Speicher (z. B. einen VRAM) aktualisiert.
  • 5 stellt eine Ausführungsform eines Systems 700 dar, das gemäß einer Ausführungsform eine dreidimensionale (3D) Grafikpipeline und eine Rechnerpipeline enthält. Zum Beispiel kann die 3D-Grafikpipeline die 3D-Grafikpipeline 112 (1) und/oder die 3D-Grafikpipeline 677 (4) umfassen, die oben erörtert wurden. Zum Beispiel kann die Rechnerpipeline die Rechnerpipeline 126 (1) und/oder die Rechnerpipeline 679 (4) umfassen, die oben erörtert wurden. Bei einigen Ausführungsformen kann das System 700 ein Mediensystem sein, obwohl das System 700 nicht auf diesen Kontext beschränkt ist. Das System 700 kann zum Beispiel in einen Personal Computer (PC), einen Laptop-Computer, einen Ultra-Laptop-Computer, einen Tablet-Computer, einen Touchpad, einen tragbaren Computer, einen Handheld-Computer, einen Palmtop-Cmputer, einen persönlichen Datenassistenten (Personal Digital Assistant, PDA), ein Mobiltelefon, eine Kombination aus Mobiltelefon und PDA, einen Fernseher, eine Smart-Einrichtung (z. B. ein Smartphone, ein Smart-Tablet oder ein Smart-TV), ein mobiles Internet-Gerät (Mobile Internet Device, MID), ein Nachrichtengerät, ein Datenübertragungsgerät, eine Spielkonsole und so weiter eingebunden sein.
  • Bei einigen Ausführungsformen umfasst das System 700 eine Plattform 702, die mit einer Anzeige 720 verbunden ist. Die Plattform 702 kann einen Inhalt von einem Content-Gerät wie zum Beispiel einem oder mehreren Content-Dienstgeräten 730 oder einem oder mehreren Content-Übergabegeräten 740 oder ähnlichen Content-Quellen empfangen. Eine Navigationssteuereinheit 750, die eine oder mehrere Navigationsmerkmale umfasst, kann verwendet werden, um zum Beispiel mit der Plattform 702 und/oder der Anzeige 720 zu kommunizieren. Alle diese Komponenten werden unten ausführlicher beschrieben.
  • Bei einigen Ausführungsformen kann die Plattform 702 eine beliebige Kombination aus einem Chipsatz 705, einem Prozessor 710, einem Arbeitsspeicher 712, einem Datenspeicher 714, einem Grafikuntersystem 715, den Anwendungen 716 und/oder einer Funkeinheit 718 umfassen. Der Chipsatz 705 kann eine Datenübertragung zwischen dem Prozessor 710, dem Arbeitsspeicher 712, dem Datenspeicher 714, dem Grafikuntersystem 715, den Anwendungen 716 und/oder der Funkeinheit 718 bereitstellen. Der Chipsatz 705 kann zum Beispiel einen (nicht gezeigten) Datenspeicheradapter umfassen, der in der Lage ist eine Datenübertragung mit dem Datenspeicher 714 bereitzustellen.
  • Der Prozessor 710 kann als Prozessoren eines Computers mit komplexem Befehlssatz (Complex Instruction Set Computer, CISC) oder eines Computers mit eingeschränktem Befehlssatz (Reduced Instruction Set Computer, RISC), als x86-Befehlssatz kompatible Prozessoren, als Mehrkernprozessor oder als ein beliebiger anderer Mikroprozessor oder als Zentralprozessor (Central Processing Unit, CPU) umgesetzt werden. Bei einigen Ausführungsformen kann der Prozessor 710 einen oder mehrere Zweikernprozessoren, einen oder mehrere mobile Zweikernprozessoren und so weiter umfassen.
  • Der Arbeitsspeicher 712 kann als eine flüchtige Speichereinheit wie zum Beispiel, ohne darauf beschränkt zu sein, ein Direktzugriffsspeicher (Random Access Memory, RAM), ein dynamischer Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM), oder ein statischer RAM (Static RAM, SRAM) umgesetzt sein.
  • Der Datenspeicher 714 kann als eine nichtflüchtige Datenspeichereinheit wie zum Beispiel, ohne darauf beschränkt zu sein, ein magnetisches Laufwerk, ein optisches Laufwerk ein Bandlaufwerk, eine interne Speichereinheit, eine angefügte Speichereinheit, ein Flashspeicher, ein batteriegestützter SDRAM (synchroner DRAM) und/oder eine über ein Netzwerk zugängliche Speichereinheit umgesetzt sein. Bei einigen Ausführungsformen kann der Datenspeicher 714 eine Technologie umfassen, um den verbesserten Schutz der Speicherleistungsfähigkeit für wertvolle digitale Medien zu erhöhen, wenn zum Beispiel mehrere Festplattenlaufwerke enthalten sind.
  • Ein Grafikteilsystem 715 kann ein Verarbeiten von Bildern wie zum Beispiel statische Bilder oder Videos für eine Anzeige ausführen. Das Grafikteilsystem 715 kann zum Beispiel ein Grafikprozessor (Graphics Processing Unit, GPU) und/oder ein optischer Verarbeitungsprozessor (Visual Pocessing Unit, VPU) sein. Eine analoge oder digitale Schnittstelle kann verwendet werden, um das Grafikteilsystem 715 und die Anzeige 720 für einen Datenaustausch miteinander zu verbinden. Die Schnittstelle kann zum Beispiel eine aus einer HDMI (High-Definition Multimedia Interface), einem Displayfort, einer drahtlosen HDMI und/oder einer drahtlosen HD-kompatiblen Technik sein. Das Grafikteilsystem 715 kann in den Prozessor 710 oder den Chipsatz 705 integriert sein. Das Grafikteilsystem 715 kann eine eigenständige Karte sein, die für einen Datenaustausch mit dem Chipsatz 705 verbunden ist.
  • Die hier beschriebenen Grafik- und/oder Videoverarbeitungstechniken können in verschiedenen Hardwarearchitekturen umgesetzt werden. Die Grafik- und/oder Videofunktionalität können in einen Chipsatz integriert sein. Alternativ kann ein diskreter Grafik- und/oder Videoprozessor verwendet werden. Bei einer weiteren Ausführungsform können die Grafik- und/oder Videofunktionen durch einen Universal-Prozessor einschließlich eines Mehrkernprozessors umgesetzt werden. Bei einer weiteren Ausführungsform können die Funktionen in einem elektronischen Benutzergerät umgesetzt werden.
  • Eine Funkeinheit 718 kann eine oder mehrere Funkeinheiten umfassen, die in der Lage sind, Signale mithilfe verschiedener geeigneter drahtloser Datenübertragungstechniken zu senden und zu empfangen. Diese Techniken können eine Datenübertragung über ein oder mehrere drahtlose Netzwerke beinhalten. Ein beispielhaftes drahtloses Netzwerk umfasst (ohne darauf beschränkt zu sein) drahtlose lokale Netzwerke (Wireless Local Area Networks, WLANs), drahtlose persönliche Netzwerke (Wireless Personal Area Networks, WPANs), drahtlose städtische Netzwerke (Wireless Metropolitan Area Networks, WLANs), Mobilfunknetzwerke und Satellitennetzwerke. Bei dem Datenaustausch über diese Netzwerke kann die Funkeinheit 718 gemäß eines oder mehreren der anwendbaren Standards in jeder beliebigen Version betrieben werden.
  • Bei einigen Ausführungsformen kann die Anzeige 720 jeden beliebigen fernsehartigen Bildschirm oder jede beliebige Anzeige umfassen. Die Anzeige 720 kann zum Beispiel einen Computeranzeigebildschirm, einen berührungsempfindlichen Bildschirm, einen Videomonitor, ein fernsehartiges Gerät und/oder einen Fernseher umfassen. Die Anzeige 720 kann digital und/oder analog sein. Bei einigen Ausführungsformen kann die Anzeige 720 eine holografische Anzeige sein. Die Anzeige 720 kann auch eine transparente Oberfläche sein, die eine optische Projektion empfangen kann. Diese Projektionen können verschiedene Formen von Informationen, Bildern und/oder Objekten transportieren. Zum Beispiel können diese Projektionen eine optische Überlagerung für eine Anwendung einer mobilen erweiterten Realität (Mobile Augmented Reality application, MAR-Anwendung) sein. Unter der Steuerung einer oder mehrerer Softwareanwendungen 716 kann die Plattform 702 auf der Anzeige 720 eine Benutzeroberfläche 722 darstellen.
  • Bei einigen Ausführungsformen können ein oder mehrere Content-Dienstgeräte 730 von einem beliebigen nationalen, internationalen und/oder unabhängigen Dienst betrieben werden und daher zum Beispiel über das Internet für die Plattform 702 zugänglich sein. Das eine oder die mehreren Content-Dienstgeräte 730 können mit der Plattform 702 und/oder der Anzeige 720 verbunden sein. Die Plattform 702 und/oder das eine oder die mehreren Content-Dienstgeräte 730 können mit einem Netzwerk 760 verbunden sein, um Medieninformationen zu und von dem Netzwerk 760 zu übertragen (z. B. zu senden und/oder zu empfangen). Ein oder mehrere Content-Übergabegeräte 740 können mit der Plattform 702 und/oder der Anzeige 720 verbunden sein.
  • Bei einigen Ausführungsformen können das eine oder die mehreren Content-Dienstgeräte 730 einen Kabelfernsehanschlusskasten, einen Personal Computer, ein Netzwerk, ein Telefon, Internet-fähige Geräte oder Vorrichtungen, die in der Lage sind digitale Informationen und/oder Inhalte zu übertragen, und jedes andere beliebige Gerät umfassen, das in der Lage ist, in einem Datenaustausch in einer Richtung oder in zwei Richtungen einen Inhalt zwischen Content-Anbietern und der Plattform 702 und/oder der Anzeige 720 über ein Netzwerk 760 oder direkt bereitzustellen. Es ist selbstverständlich, dass der Inhalt in einer und/oder in zwei Richtungen zu und von jeder Komponente des Systems 700 und einer Content-Übergabeeinheit über das Netzwerk 760 übertragen werden kann. Beispiele der Inhalte können beliebige Medieninformationen zum Beispiel Informationen über Videos, Musik, Medizin und Spiele und so weiter umfassen.
  • Das eine oder die mehreren Content-Dienstgeräte 730 empfangen einen Inhalt wie zum Beispiel ein Kabelfernsehprogramm einschließlich Medieninformationen, digitale Informationen und/oder einen anderen Inhalt. Beispiele von Content-Übergabeeinheiten können ein Kabel- oder Satellitenfernsehen, eine Funkeinheit oder Internet-Content-Übergabeeinheiten umfassen. Die bereitgestellten Beispiele sind nicht als eine Einschränkung für die Ausführungsformen der Erfindung zu verstehen.
  • Bei einigen Ausführungsformen kann die Plattform 702 Steuersignale von der Navigationssteuereinheit 750 empfangen, die ein oder mehrere Navigationsmekmale aufweisen. Die Navigationsmerkmale der Steuereinheit 750 können verwendet werden, um zum Beispiel mit der Benutzeroberfläche 722 zu kommunizieren. Bei einigen Ausführungsformen kann die Navigationssteuereinheit 750 ein Zeigegerät sein, das eine Computerhardwarekomponente (speziell ein menschliches Schnittstellengerät) sein kann, das einem Benutzer erlaubt, räumliche (z. B. kontinuierliche und mehrdimensionale) Daten in einen Computer einzugeben. Viele Systeme wie zum Beispiel grafische Benutzeroberflächen (Graphical User Interfaces, GUIs) und Fernseher und Bildspeicher erlauben dem Benutzer, den Computer oder den Fernseher mithilfe physischer Gesten zu steuern oder diesen Geräten Daten bereitzustellen.
  • Bewegungen der Navigationsmerkmale der Steuereinheit 750 können auf einer Anzeige (z. B. der Anzeige 720) durch Bewegungen eines Zeigers, eines Cursors, eines Fokusrings oder anderer auf der Anzeige angezeigter optischer Kennzeichen widergespiegelt werden. Zum Beispiel können die in der Navigationssteuereinheit 750 vorhandenen Navigationsmerkmale mithilfe der Steuerung von Softwareanwendungen 716 auf virtuelle Navigationsmerkmale abgebildet werden, die zum Beispiel auf der Benutzeroberfläche 722 angezeigt werden. Bei einigen Ausführungsformen muss die Steuereinheit 750 keine separate Komponente sein, sondern kann in die Plattform 702 und/oder die Anzeige 720 integriert sein. Die Ausführungsformen sind jedoch nicht auf die gezeigten oder hier beschriebenen Elemente oder den gezeigten oder hier beschriebenen Zusammenhang beschränkt.
  • Bei einigen Ausführungsformen können (nicht gezeigte) Treiber eine Technologie umfassen, die es den Benutzern ermöglicht die Plattform 702 wie einen Fernseher durch das Berühren einer Schaltfläche nach dem anfänglichen Hochfahren unverzüglich ein- und auszuschalten, wenn dies zum Beispiel ermöglicht ist. Die Programmlogik kann der Plattform 702 erlauben, einen Inhalt zu Medienadaptern oder einem oder mehreren anderen Content-Dienstgeräten 730 oder einem oder mehreren anderen Content-Übergabegeräten 740 zu streamen, wenn die Plattform „ausgeschaltet” ist. Außerdem kann der Chipsatz 705 eine Hardware- und/oder eine Softwareunterstützung zum Beispiel für eine 5.1-Raumklangtonanlage und/oder für eine hochauflösende 7.1-Raumklangtonanlage umfassen. Die Treiber können einen Grafiktreiber für integrierte Grafikplattformen umfassen. Bei einigen Ausführungsformen kann der Grafiktreiber eine Expressgrafikkarte für die Verbindung von Peripheriegeräten (Peripheral Component Interconnect, PCI) umfassen.
  • Bei verschiedenen Ausführungsformen können eine oder mehrere beliebige in dem System 700 gezeigte Komponenten integriert sein. Zum Beispiel können die Plattform 702 und das eine oder die mehreren Content-Dienstgeräte 730 integriert sein oder die Plattform 702 und das eine oder die mehreren Content-Übergabegeräte 740 können integriert sein oder die Plattform 702, das eine oder die mehreren Content-Dienstgeräte 730 und das eine oder die mehreren Content-Übergabegeräte 740 können integriert sein. Bei verschiedenen Ausführungsformen können die Plattform 702 und die Anzeige 720 eine integrierte Einheit sein. Die Anzeige 720 und das eine oder die mehreren Content-Dienstgeräte 730 können integriert sein oder die Anzeige 720 und das eine oder die mehreren Content-Übergabegeräte 740 können zum Beispiel integriert sein. Diese Beispiele sind nicht als eine Einschränkung für die Erfindung zu verstehen.
  • Bei verschiedenen Ausführungsformen kann das System 700 als ein drahtloses System, ein verkabeltes System oder eine Kombination aus beiden umgesetzt sein. Wenn das System 700 als ein drahtloses System umgesetzt wird, kann es Komponenten und Schnittstellen umfassen, die geeignet sind, einen Datenaustausch über ein drahtloses gemeinsam genutztes Medium wie zum Beispiel ein oder mehrere Antennen, Sender, Empfänger, Transceiver, Verstärker, Filter, Steuerlogiken und so weiter auszuführen. Ein Beispiel eines drahtlosen gemeinsam genutzten Mediums kann Anteile eines drahtlosen Spektrums wie zum Beispiel das HF-Spektrum und so weiter umfassen. Wenn das System 700 als ein verkabeltes System umgesetzt wird, kann es Komponenten und Schnittstellen umfassen, die geeignet sind, einen Datenaustausch über ein verkabeltes Datenübertragungsmedium wie zum Beispiel Eingabe/Ausgabe-Adapter (I/O-Adapter), physische Steckverbinder zum Verbinden der I/O-Adapter mit einem entsprechenden verkabelten Datenübertragungsmedium, eine Netzwerkschnittstellenkarte (Network Interface Card, NIC), eine Laufwerkssteuereinheit, eine Videosteuereinheit, eine Audiosteuereinheit und so weiter auszuführen. Beispiele verkabelter Datenübertragungsmedien können einen Draht, ein Kabel, Metallanschlüsse, eine gedruckte Leiterplatte (Printed Circuit Board, PCB), eine Rückwandplatine, ein Switch-Fabric, ein Halbleitermaterial, ein Twisted-Pair-Kabel, ein Koaxialkabel, einen Lichtwellenleiter und so weiter umfassen.
  • Die Plattform 702 kann einen oder mehrere logische oder physische Kanäle einrichten, um Informationen zu übertragen. Die Informationen können Medieninformationen und Steuerinformationen umfassen. Medieninformationen können sich auf beliebige Daten beziehen, die einen Inhalt darstellen, der für einen Benutzer bestimmt ist. Beispiele eines Inhalts können zum Beispiel Daten von einer gesprochenen Unterhaltung, eine Videokonferenz, das Streamen eines Videos, eine elektronische Nachricht („Email”-Nachricht), eine Voicemail-Nachricht, alphanumerische Symbole, eine Grafik, ein Bild, ein Video, einen Text und so weiter umfassen. Daten von einer gesprochenen Unterhaltung können zum Beispiel Sprachinformationen, Ruheperioden, Hintergrundgeräusche, behagliche Geräusche, Töne und so weiter sein. Steuerinformationen können sich auf beliebige Daten beziehen, die, Anweisungen oder Steuerwörter darstellen, die für ein automatisiertes System bestimmt sind. Steuerinformationen können zum Beispiel verwendet werden, um Medieninformationen durch ein System zu leiten, oder einen Knoten anzuweisen, die Medieninformationen in einer vorbestimmten Weise zu verarbeiten. Die Ausführungsformen sind jedoch nicht auf die Elemente oder die Kontexte beschränkt, die in 5 gezeigt oder beschrieben werden.
  • Wie oben beschrieben, kann das System 700 in verschiedenen physischen Variationen oder Formfaktoren verkörpert werden. 6 stellt Ausführungsformen eines Geräts mit kleinem Formfaktor 800 dar, in dem das System 700 verkörpert sein kann. Bei einigen Ausführungsformen kann das Gerät 800 als eine mobile Computereinheit umgesetzt sein, die drahtlose Fähigkeiten aufweist. Eine mobile Computereinheit kann sich zum Beispiel auf eine beliebige Einheit beziehen, die ein Prozessorsystem und eine mobile Stromquelle oder – versorgung wie zum Beispiel eine oder mehrere Batterien aufweist.
  • Wie oben beschrieben können Beispiele für eine mobile Computereinheit einen Personal Computer (PC), einen Laptop-Computer, einen Ultra-Laptop-Computer, einen Tablet-Computer, einen Touchpad, einen tragbaren Computer, einen Handheld-Computer, einen Palmtop-Cmputer, einen persönlichen Datenassistenten (Personal Digital Assistant, PDA), ein Mobiltelefon, eine Kombination aus Mobiltelefon und PDA, einen Fernseher, eine Smart-Einrichtung (z. B. ein Smartphone, ein Smart-Tablet oder ein Smart-TV), ein mobiles Internet-Gerät (Mobile Internet Device, MID), ein Nachrichtengerät, ein Datenübertragungsgerät und so weiter umfassen.
  • Beispiele für eine mobile Computereinheit können auch Computer umfassen, die eingerichtet sind, um von einer Person als Kleidung getragen zu werden, wie zum Beispiel ein Handgelenk-Computer, ein Finger-Computer, ein Ring-Computer, ein Brillen-Computer, ein Gürtelschnallen-Computer, ein Armband-Computer, ein Schuh-Computer, ein Kleidungs-Computer und andere als Kleidung tragbare Computer. Bei einigen Ausführungsformen kann eine mobile Computereinheit als ein Smartphone umgesetzt sein, das in der Lage ist, sowohl Computeranwendungen als auch Sprachübertragungen und/oder Datenübertragungen auszuführen. Obwohl einige Ausführungsformen mit einer mobilen Computereinheit beschrieben werden können, die beispielhaft als Smartphone umgesetzt wird, ist es selbstverständlich, dass weitere Ausführungsformen auch mithilfe anderer drahtloser mobiler Computereinheiten umgesetzt werden können. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Wie in 6 gezeigt wird, kann das Gerät 800 ein Gehäuse 802, eine Anzeige 804, ein Eingabe/Ausgabe-Gerät (I/O-Gerät) 806 und eine Antenne 808 umfassen. Das Gerät 800 kann auch Navigationsmerkmale 812 umfassen. Die Anzeige 804 kann eine beliebige geeignete Anzeigeeinheit für ein Anzeigen von Informationen umfassen, die für eine mobile Computereinheit geeignet sind. Das I/O-Gerät 806 kann ein geeignetes I/O-Gerät zum Eingeben von Informationen in eine mobile Computereinheit umfassen. Beispiele für ein I/O-Gerät 806 können eine alphanumerische Tastatur, eine numerische Tastatur, einen Touchpad, Schaltflächen, Schalter, Wippschalter, Mikrofone, Lautsprecher, eine Spracherkennungseinheit und -software und so weiter umfassen. Informationen können auch mithilfe eines Mikrofons in das Gerät 800 eingegeben werden. Diese Informationen können durch eine Spracherkennungseinheit digitalisiert werden. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Zusätzliche Hinweise und Beispiele:
  • Beispiele können Gegenstände sein wie zum Beispiel ein Verfahren, ein Mittel zum Ausführen von Aktionen des Verfahrens, mindestens ein maschinenlesbares Medium einschließlich der Anweisungen, die, wenn sie von einer Maschine ausgeführt werden, die Maschine veranlassen, Aktionen des Verfahrens auszuführen, oder eine Vorrichtung oder ein System zum Abtasten einer Textur, zum Verwalten eines Fehlers und/oder zum Kontextwechseln gemäß den hier beschriebenen Ausführungsformen und Beispielen.
  • Beispiel 1 kann eine Vorrichtung umfassen, die einen oder mehrere Prozessoren und eine oder mehrere Pipelines umfasst. Die Vorrichtung kann eine dreidimensionale (3D) Grafikpipeline umfassen, die ein Standortmodul zum Texturabtasten umfasst, um Standortdaten des Texturabtastens bereitzustellen, die einer Textur entsprechen, wobei ein Abtasten der Textur außerhalb der 3D-Grafikpipeline auszuführen ist. Die Vorrichtung kann eine Rechnerpipeline umfassen, die ein Ergebnismodul für das Texturabtasten umfasst, um ein Abtasten der Textur mithilfe der Standortdaten des Texturabtastens auszuführen und/oder um Ergebnisdaten des Texturabtastens bereitzustellen, die der Textur entsprechen, wobei ein Wiedergabemodul der 3D-Grafikpipeline, dafür vorgesehen ist, ein Einzelbild mithilfe der Ergebnisdaten des Texturabtastens aufzubauen, und/oder wobei das Einzelbild in der Anzeige angezeigt wird.
  • Beispiel 2 kann den Gegenstand des Beispiels 1 umfassen und kann außerdem optional umfassen, dass das Standortmodul zum Texturabtasten einen Pufferspeicher für Abtastinformationen erzeugt, der die Standortdaten des Texturabtastens enthält, wobei das Ergebnismodul für das Texturabtasten den Pufferspeicher für Abtastinformationen liest, um das Abtasten auszuführen, und/oder einen Pufferspeicher für eine Texturschicht erzeugt, der die Ergebnisdaten des Texturabtasten enthält, und/oder wobei das Wiedergabemodul den Pufferspeicher für die Texturschicht liest, um das Einzelbild aufzubauen.
  • Beispiel 3 kann den Gegenstand von einem der Beispiele 1 oder 2 umfassen und kann außerdem optional umfassen, dass die 3D-Grafikpipeline eine 3D-Anwendungsprogrammierschnittstelle (3D Application Programming Interface, API) für eine Grafikbibliothek (Graphics Library, GL) unterstützt, um den Pufferspeicher für Abtastinformationen zu erzeugen, der eine oder mehrere aus einer uv-Koordinate, einem Gradienten und/oder einer Texturbehandlung enthält, und/oder wobei die Rechnerpipeline eine Rechner-API unterstützt, um das Abtasten auszuführen und/oder um den Pufferspeicher für die Texturschicht einschließlich der Farbdaten zu erzeugen.
  • Beispiel 4 kann den Gegenstand von einem der Beispiele 1 bis 3 umfassen und kann außerdem optional umfassen, dass die Rechnerpipeline ein Fehlerverwaltungsmodul umfasst, um einen Seitenfehler zu verwalten, wobei einer oder mehrere des Seitenfehlers und/oder der Verwaltung des Seitenfehlers vor einer Grafikanwendung verborgen werden.
  • Beispiel 5 kann den Gegenstand von einem der Beispiele 1 bis 4 umfassen und kann außerdem optional umfassen, dass die Rechnerpipeline ein Kontextwechselmodul umfasst, um einen dem Seitenfehler zugehörigen Rechnerkontext auszuwechseln, sodass erlaubt wird, dass eine Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, ausgeführt wird und/oder eine Blockierung als Reaktion auf den Seitenfehler verhindert wird.
  • Beispiel 6 kann den Gegenstand von einem der Beispiele 1 bis 5 umfassen und kann außerdem optional umfassen, dass die 3D-Grafikpipeline ein 3D-Kontextgrafikaufgabenmodul umfasst, um eine 3D-Grafikaufgabe auszuführen, die nicht dem Seitenfehler zugeordnet ist, wenn das Fehlerverwaltungsmodul den Seitenfehler verwaltet.
  • Beispiel 7 kann den Gegenstand von einem der Beispiele 1 bis 6 umfassen und kann außerdem optional umfassen, dass die 3D-Grafikpipeline ein Ergebnismodul für ein alternatives Texturabtasten umfasst, um Ergebnisdaten eines alternativen Texturabtastens so zu erzeugen, dass das Einzelbild aufgebaut wird, wenn die Ergebnisdaten des Texturabtastens nicht innerhalb eines vorbestimmten Zeitraums zur Verfügung stehen.
  • Beispiel 8 kann den Gegenstand von einem der Beispiele 1 bis 7 umfassen und kann außerdem optional umfassen, dass das Ergebnismodul für das alternative Texturabtasten ein Abtasten eines dauerhaft vorhandenen relativ gröberen MIP-map der Textur so ausführt, dass die Ergebnisdaten des alternativen Texturabtastens erzeugt werden.
  • Beispiel 9 kann den Gegenstand von einem der Beispiele 1 bis 8 umfassen und kann außerdem optional umfassen, dass die 3D-Grafikpipeline ein Wartemodul umfasst, damit die 3D-Grafikpipeline wartet, bis das Fehlerverwaltungsmodul den Seitenfehler repariert hat, um das Einzelbild aufzubauen, wobei das Warten die 3D-Grafikpipeline mit der Rechnerpipeline ohne ein ausdrückliches Ende synchronisiert.
  • Beispiel 10 kann den Gegenstand von einem der Beispiele 1 bis 9 umfassen und kann außerdem optional umfassen, dass die Rechnerpipeline einen oder mehrere eines Detaillierungsgrad-Bias (Level Of Detail bias, LOD-Bias) und/oder einer Abfertigung eines Thread-Teilsatzes umsetzt, um der Rechnerpipeline zu erlauben, dass sie an die 3D-Grafikpipeline angeglichen wird.
  • Beispiel 11 kann ein Verfahren zum Abtasten einer Textur, Verwalten eines Fehlers und/oder Kontextwechseln gemäß der hier beschriebenen Ausführungsformen und Beispiele umfassen. Das Verfahren kann ein Bereitstellen von Standortdaten des Texturabtastens, die einer Textur entsprechen, über eine dreidimensionale (3D) Grafikpipeline umfassen, wobei ein Abtasten der Textur außerhalb der 3D-Grafikpipeline ausgeführt wird. Das Verfahren kann ein Ausführen eines Abtastens über eine Rechnerpipeline mithilfe der Standortdaten des Texturabtastens umfassen. Das Verfahren kann ein Bereitstellen von Ergebnisdaten des Texturabtastens, die der Textur entsprechen, über die Rechnerpipeline umfassen, wobei die 3D-Grafikpipeline mithilfe der Ergebnisdaten des Texturabtastens ein Einzelbild aufbaut.
  • Beispiel 12 kann den Gegenstand des Beispiels 11 umfassen und kann außerdem optional ein Erzeugen eines Pufferspeichers für Abtastinformationen, der die Standortdaten des Texturabtastens enthält, über die 3D-Grafikpipeline, ein Lesen des Pufferspeichers für Abtastinformationen über die Rechnerpipeline, um das Abtasten auszuführen und/oder ein Erzeugen eines Pufferspeichers für eine Texturschicht, der die Ergebnisdaten des Texturabtastens enthält, und/oder ein Lesen des Pufferspeichers für die Texturschicht für das Aufbauen des Einzelbildes über die 3D-Grafikpipeline umfassen.
  • Beispiel 13 kann den Gegenstand von einem der Beispiele 11 oder 12 umfassen und kann außerdem optional ein Unterstützen einer 3D-Anwendungsprogrammierschnittstelle (3D Application Programming Interface, API) für eine Grafikbibliothek (Graphics Library, GL) über die 3D-Grafikpipeline, um den Pufferspeicher für Abtastinformationen zu erzeugen, der eine oder mehrere aus einer uv-Koordinate, einem Gradienten und/oder einer Texturbehandlung enthält, und/oder ein Unterstützen einer Rechner-API über die Rechnerpipeline umfassen, um den Pufferspeicher für die Texturschicht einschließlich der Farbdaten zu erzeugen.
  • Beispiel 14 kann den Gegenstand von einem der Beispiele 11 bis 13 umfassen und kann außerdem optional ein Verwalten eines Seitenfehlers über die Rechnerpipeline umfassen, wobei einer oder mehrere des Seitenfehlers und/oder der Verwaltung des Seitenfehlers vor einer Grafikanwendung verborgen werden.
  • Beispiel 15 kann den Gegenstand von einem der Beispiele 11 bis 14 umfassen und kann außerdem optional ein Auswechseln eines dem Seitenfehler zugehörigen Rechnerkontexts über die Rechnerpipeline umfassen, sodass erlaubt wird, dass eine Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, ausgeführt wird und/oder eine Blockierung als Reaktion auf den Seitenfehler verhindert wird.
  • Beispiel 16 kann den Gegenstand von einem der Beispiele 11 bis 15 umfassen und kann außerdem optional ein Ausführen einer 3D-Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, über die 3D-Grafikpipeline umfassen, wenn die Rechnerpipeline den Seitenfehler verwaltet.
  • Beispiel 17 kann den Gegenstand von einem der Beispiele 11 bis 16 umfassen und kann außerdem optional ein Erzeugen von Ergebnisdaten eines alternativen Texturabtastens über die 3D-Grafikpipeline umfassen, um das Einzelbild aufzubauen, wenn die Ergebnisdaten des Texturabtastens nicht innerhalb eines vorbestimmten Zeitraums zur Verfügung stehen.
  • Beispiel 18 kann den Gegenstand von einem der Beispiele 11 bis 17 umfassen und kann außerdem optional ein Ausführen eines Abtastens eines dauerhaft vorhandenen relativ gröberen MIP-map der Textur umfassen, sodass die Ergebnisdaten des alternativen Texturabtastens erzeugt werden.
  • Beispiel 19 kann den Gegenstand von einem der Beispiele 11 bis 18 umfassen und kann außerdem optional ein Warten der 3D-Grafikpipeline umfassen, bis der Seitenfehler repariert ist, um das Einzelbild aufzubauen, wobei das Warten die 3D-Grafikpipeline mit der Rechnerpipeline ohne ein ausdrückliches Ende synchronisiert.
  • Beispiel 20 kann den Gegenstand von einem der Beispiele 11 bis 19 umfassen und kann außerdem optional ein Umsetzen eines oder mehrerer eines Detaillierungsgrad-Bias (Level Of Detail bias, LOD-Bias) und/oder einer Abfertigung eines Thread-Teilsatzes über die Rechnerpipeline umfassen, um der Rechnerpipeline zu erlauben, dass sie an die 3D-Grafikpipeline angeglichen wird.
  • Beispiel 21 kann mindestens ein computerlesbares Speichermedium umfassen, das eine oder mehrerer Anweisungen umfasst, die, wenn sie auf einer Computereinheit ausgeführt werden, die Computereinheit veranlassen, über eine dreidimensionale (3D) Grafikpipeline Standortdaten eines Texturabtastens bereitzustellen, die einer Textur entsprechen, wobei das Abtasten der Textur außerhalb der 3D-Grafikpipeline ausgeführt wird, über eine Rechnerpipeline mithilfe der Standortdaten des Texturabtastens das Abtasten auszuführen und/oder über die Rechnerpipeline Ergebnisdaten des Texturabtastens bereitzustellen, die der Textur entsprechen, wobei die 3D-Grafikpipeline ein Einzelbild mithilfe der Ergebnisdaten des Texturabtastens aufbaut.
  • Beispiel 22 kann den Gegenstand des Beispiels 21 umfassen und kann außerdem, wenn die eine oder mehreren Anweisungen ausgeführt werden, optional umfassen, dass die Rechnereinheit veranlasst wird, einen Pufferspeicher für Abtastinformationen, der die Standortdaten des Texturabtastens enthält, über die 3D-Grafikpipeline zu erzeugen, den Pufferspeicher für Abtastinformationen über die Rechnerpipeline zu lesen, um das Abtasten auszuführen, und/oder einen Pufferspeicher für eine Texturschicht zu erzeugen, der die Ergebnisdaten des Texturabtastens enthält, und/oder den Pufferspeicher für die Texturschicht für das Aufbauen des Einzelbildes über die 3D-Grafikpipeline zu lesen.
  • Beispiel 23 kann den Gegenstand von einem der Beispiele 21 oder 22 umfassen und kann außerdem, wenn die eine oder mehreren Anweisungen ausgeführt werden, optional umfassen, dass die Rechnereinheit veranlasst wird, eine 3D-Anwendungsprogrammierschnittstelle (3D Application Programming Interface, API) für eine Grafikbibliothek (Graphics Library, GL) über die 3D-Grafikpipeline zu unterstützen, um den Pufferspeicher für Abtastinformationen zu erzeugen, der eine oder mehrere aus einer uv-Koordinate, einem Gradienten und/oder einer Texturbehandlung enthält, und/oder eine Rechner-API über die Rechnerpipeline zu unterstützen, um den Pufferspeicher für die Texturschicht einschließlich der Farbdaten zu erzeugen.
  • Beispiel 24 kann den Gegenstand von einem der Beispiele 21 bis 23 umfassen und kann außerdem, wenn die eine oder mehreren Anweisungen ausgeführt werden, optional umfassen, dass die Rechnereinheit veranlasst wird, einen Seitenfehler über die Rechnerpipeline zu verwalten, wobei einer oder mehrere des Seitenfehlers und/oder der Verwaltung des Seitenfehlers vor einer Grafikanwendung verborgen werden.
  • Beispiel 25 kann den Gegenstand von einem der Beispiele 21 bis 24 umfassen und kann außerdem, wenn die eine oder mehreren Anweisungen ausgeführt werden, optional umfassen, dass die Rechnereinheit veranlasst wird, einen dem Seitenfehler zugehörigen Rechnerkontext über die Rechnerpipeline auszuwechseln, sodass erlaubt wird, dass eine Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, ausgeführt wird und/oder eine Blockierung als Reaktion auf den Seitenfehler verhindert wird.
  • Beispiel 26 kann den Gegenstand von einem der Beispiele 21 bis 25 umfassen und kann außerdem, wenn die eine oder mehreren Anweisungen ausgeführt werden, optional umfassen, dass die Rechnereinheit veranlasst wird, eine 3D-Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, über die 3D-Grafikpipeline auszuführen, wenn die Rechnerpipeline den Seitenfehler verwaltet.
  • Beispiel 27 kann den Gegenstand von einem der Beispiele 21 bis 26 umfassen und kann außerdem, wenn die eine oder mehreren Anweisungen ausgeführt werden, optional umfassen, dass die Rechnereinheit veranlasst wird, Ergebnisdaten eines alternativen Texturabtastens über die 3D-Grafikpipeline zu erzeugen, um das Einzelbild aufzubauen, wenn die Ergebnisdaten des Texturabtastens nicht innerhalb eines vorbestimmten Zeitraums zur Verfügung stehen.
  • Beispiel 28 kann den Gegenstand von einem der Beispiele 21 bis 27 umfassen und kann außerdem, wenn die eine oder mehreren Anweisungen ausgeführt werden, optional umfassen, dass die Rechnereinheit veranlasst wird, ein Abtasten eines dauerhaft vorhandenen relativ gröberen MIP-map der Textur so auszuführen, dass die Ergebnisdaten des alternativen Texturabtastens erzeugt werden.
  • Beispiel 29 kann den Gegenstand von einem der Beispiele 21 bis 28 umfassen und kann außerdem, wenn die eine oder mehreren Anweisungen ausgeführt werden, optional umfassen, dass die Rechnereinheit veranlasst wird, dass die 3D-Grafikpipeline wartet, bis der Seitenfehler repariert ist, um das Einzelbild aufzubauen, wobei das Warten die 3D-Grafikpipeline mit der Rechnerpipeline ohne ein ausdrückliches Ende synchronisiert.
  • Beispiel 30 kann den Gegenstand von einem der Beispiele 21 bis 29 umfassen und kann außerdem, wenn die eine oder mehreren Anweisungen ausgeführt werden, optional umfassen, dass die Rechnereinheit veranlasst wird, einen oder mehrere eines Detaillierungsgrad-Bias (Level Of Detail bias, LOD-Bias) und/oder einer Abfertigung eines Thread-Teilsatzes über die Rechnerpipeline umzusetzen, um der Rechnerpipeline zu erlauben, dass sie an die 3D-Grafikpipeline angeglichen wird.
  • Beispiel 31 kann eine Vorrichtung umfassen, die Prozessorelemente und eine oder mehrere Pipelines umfasst. Die Vorrichtung kann ein Element zum Bereitstellen von Standortdaten des Texturabtastens, die einer Textur entsprechen, über eine dreidimensionale (3D) Grafikpipeline umfassen, wobei ein Abtasten der Textur außerhalb der 3D-Grafikpipeline ausgeführt wird. Die Vorrichtung kann ein Element zum Ausführen eines Abtastens über eine Rechnerpipeline mithilfe der Standortdaten des Texturabtastens umfassen. Die Vorrichtung kann ein Element zum Bereitstellen von Ergebnisdaten des Texturabtastens, die der Textur entsprechen, über die Rechnerpipeline umfassen, wobei die 3D-Grafikpipeline mithilfe der Ergebnisdaten des Texturabtastens ein Einzelbild aufbaut und/oder wobei das Einzelbild von einem Anzeigeelement angezeigt wird.
  • Beispiel 32 kann den Gegenstand des Beispiels 31 umfassen und kann außerdem optional ein Element zum Erzeugen eines Pufferspeichers für Abtastinformationen, der die Standortdaten des Texturabtastens enthält, über die 3D-Grafikpipeline, ein Element zum Lesen des Pufferspeichers für Abtastinformationen über die Rechnerpipeline, um das Abtasten auszuführen und/oder ein Element zum Erzeugen eines Pufferspeichers für eine Texturschicht, der die Ergebnisdaten des Texturabtastens enthält, und/oder ein Element zum Lesen des Pufferspeichers für die Texturschicht für das Aufbauen des Einzelbildes über die 3D-Grafikpipeline umfassen.
  • Beispiel 33 kann den Gegenstand von einem der Beispiele 31 oder 32 umfassen und kann außerdem optional ein Element zum Unterstützen einer 3D-Anwendungsprogrammierschnittstelle (3D Application Programming Interface, API) für eine Grafikbibliothek (Graphics Library, GL) über die 3D-Grafikpipeline, um den Pufferspeicher für Abtastinformationen zu erzeugen, der eine oder mehrere aus einer uv-Koordinate, einem Gradienten und/oder einer Texturbehandlung enthält, und/oder ein Element zum Unterstützen einer Rechner-API über die Rechnerpipeline umfassen, um den Pufferspeicher für die Texturschicht einschließlich der Farbdaten zu erzeugen.
  • Beispiel 34 kann den Gegenstand von einem der Beispiele 31 bis 33 umfassen und kann außerdem optional ein Element zum Verwalten eines Seitenfehlers über die Rechnerpipeline umfassen, wobei einer oder mehrere des Seitenfehlers und/oder der Verwaltung des Seitenfehlers vor einer Grafikanwendung verborgen werden.
  • Beispiel 35 kann den Gegenstand von einem der Beispiele 31 bis 34 umfassen und kann außerdem optional ein Element zum Auswechseln eines dem Seitenfehler zugehörigen Rechnerkontexts über die Rechnerpipeline umfassen, sodass erlaubt wird, dass eine Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, ausgeführt wird und/oder eine Blockierung als Reaktion auf den Seitenfehler verhindert wird.
  • Beispiel 36 kann den Gegenstand von einem der Beispiele 31 bis 35 umfassen und kann außerdem optional ein Element zum Ausführen einer 3D-Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, über die 3D-Grafikpipeline umfassen, wenn die Rechnerpipeline den Seitenfehler verwaltet.
  • Beispiel 37 kann den Gegenstand von einem der Beispiele 31 bis 36 umfassen und kann außerdem optional ein Element zum Erzeugen von Ergebnisdaten eines alternativen Texturabtastens über die 3D-Grafikpipeline umfassen, um das Einzelbild aufzubauen, wenn die Ergebnisdaten des Texturabtastens nicht innerhalb eines vorbestimmten Zeitraums zur Verfügung stehen.
  • Beispiel 38 kann den Gegenstand von einem der Beispiele 31 bis 37 umfassen und kann außerdem optional ein Element zum Ausführen eines Abtastens eines dauerhaft vorhandenen relativ gröberen MIP-map der Textur umfassen, sodass die Ergebnisdaten des alternativen Texturabtastens erzeugt werden.
  • Beispiel 39 kann den Gegenstand von einem der Beispiele 31 bis 38 umfassen und kann außerdem optional ein Element umfassen, mit dem die 3D-Grafikpipeline wartet, bis der Seitenfehler repariert ist, um das Einzelbild aufzubauen, wobei das Warten die 3D-Grafikpipeline mit der Rechnerpipeline ohne ein ausdrückliches Ende synchronisiert.
  • Beispiel 40 kann den Gegenstand von einem der Beispiele 41 bis 49 umfassen und kann außerdem optional ein Element zum Umsetzen eines oder mehrerer eines Detaillierungsgrad-Bias (Level Of Detail bias, LOD-Bias) und/oder einer Abfertigung eines Thread-Teilsatzes über die Rechnerpipeline umfassen, um der Rechnerpipeline zu erlauben, dass sie an die 3D-Grafikpipeline angeglichen wird.
  • Verschiedene Ausführungsformen können mithilfe von Hardwareelementen, Softwareelementen oder einer Kombination aus beiden umgesetzt werden. Beispiele von Hardwareelementen können Prozessoren, Mikroprozessoren, Schaltkreise, Schaltkreiselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktivitäten und so weiter), integrierte Schaltkreise, anwendungsspezifische integrierte Schaltkreise (Application Specific Integrated Circuits, ASICs), programmierbare Logikeinheiten (Programmable Logic Devices, PLDs), digitale Signalprozessoren (Digital Signal Processors, DSPs), ein anwenderprogrammierbares Gate-Array (Field Programmable Gate Array, FPGA), Logik-Gates, Register, eine Halbleitereinheit, Chips, Mikrochips, Chipsätze und so weiter umfassen. Beispiele von Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (Application Program Interfaces, APIs), Anweisungssätze, einen Rechnercode, einen Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon umfassen. Ein Ermitteln, ob eine Ausführungsform mithilfe von Hardwareelementen und/oder Softwareelementen umgesetzt wird, kann gemäß einer beliebigen Anzahl von Faktoren variieren wie zum Beispiel der gewünschten Rechengeschwindigkeit, den Leistungspegeln, den Wärmetoleranzen, einem Budget eines Prozesszyklus, Eingabedatengeschwindigkeiten, Ausgabedatengeschwindigkeiten, Speicherressourcen, Datenbusgeschwindigkeiten und anderen Auslegungs- und Leistungsfähigkeitsbeschränkungen.
  • Ein oder mehrere Aspekte von mindestens einer Ausführungsform können durch repräsentative Anweisungen umgesetzt werden, die in einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logiken in dem Prozessor darstellt, und die, wenn sie von einer Maschine gelesen werden, die Maschine veranlassen, eine Logik herzustellen, um die hier beschriebenen Techniken auszuführen. Diese als „IP-Kerne” bekannten Darstellungen können in einem konkreten maschinenlesbaren Medium gespeichert werden und an verschiedene Kunden oder Herstellungseinrichtungen geliefert werden, um in die Herstellungsmaschinen geladen zu werden, welche die Logiken oder Prozessoren tatsächlich herstellen.
  • Ausführungsformen der vorliegenden Erfindung sind für eine Nutzung anwendbar in allen Arten von integrierten Halbleiterschaltkreischips (Integrated Circuit chips, IC-Chips). Beispiele dieser IC-Chips umfassen, ohne auf diese beschränkt zu sein, Prozessoren, Steuereinheiten, Chipsatzkomponenten, programmierbare Logik-Arrays (Programmable Logic Arrays, PLAs), Speicherchips, Netzwerkchips und ähnliche Elemente. Außerdem sind in einigen der Zeichnungen die Signalstromleitungen durch Linien dargestellt. Zum Anzeigen der Fließrichtung der Primärinformationen können einige Linien unterschiedlich sein, um wesentlichere Signalpfade anzuzeigen, eine Nummernkennung aufzuweisen, um die Nummer eines wesentlichen Signalpfads anzuzeigen, und/oder Pfeile an einem oder mehreren Enden aufweisen. Dies sollte jedoch nicht in einer einschränkenden Weise verstanden werden. Stattdessen können diese hinzugefügten Einzelheiten in Verbindung mit einer oder mehreren beispielhaften Ausführungsformen verwendet werden, um ein einfacheres Verständnis eines Schaltkreises zu erleichtern. Alle dargestellten Signalleitungen, egal ob sie zusätzliche Informationen aufweisen oder nicht, können tatsächlich ein oder mehrere Signale umfassen, die sich in mehreren Richtungen bewegen können und mit einer geeigneten Art eines Signalschemas umgesetzt werden können z. B. digitalen oder analogen Leitungen, die mit einem differenzierten Paar, Lichtwellenleitern und/oder asymmetrischen Leitungen umgesetzt werden.
  • Beispielhafte Größen/Modelle, Werte/Bereiche wurden angegeben, obwohl die Ausführungsformen der vorliegenden Erfindung nicht auf diese beschränkt sind. Da die Herstellungstechniken (z. B. die Fotolithografie) sich im Laufe der Zeit weiterentwickeln, wird erwartet, dass Geräte mit einer geringeren Größe hergestellt werden können. Außerdem können bekannte Strom-/Erdungsverbindungen zu den IC-Chips und anderen Komponenten gegebenenfalls zur Vereinfachung der Darstellung und der Erörterung in den Figuren dargestellt werden, und in einer Weise, dass bestimmte Aspekte der Ausführungsformen der Erfindung nicht verdeckt werden. Außerdem können Anordnungen in einem Blockschaubild gezeigt werden, um ein Verdecken von Ausführungsformen der Erfindung zu verhindern und auch in Anbetracht der Tatsache, dass Besonderheiten in Bezug auf eine Umsetzung dieser Blockschaubilder in hohem Maße abhängig sind von der Plattform, in welcher die Ausführungsform umgesetzt werden soll, d. h., dass diese Besonderheiten zum Kenntnisstand eines Fachmanns gehören sollten. Wo spezifische Einzelheiten (z. B. Schaltkreise) erläutert werden, um beispielhafte Ausführungsformen der Erfindung zu beschreiben, ist es für den Fachmann offensichtlich, dass die Ausführungsformen der Erfindung ohne oder mit einer Variation dieser spezifischen Einzelheiten in die Praxis umgesetzt werden können. Die Beschreibung ist daher als anschaulich und nicht als einschränkend zu betrachten.
  • Einige Ausführungsformen können zum Beispiel mithilfe einer Maschine oder eines konkreten computerlesbaren Mediums oder computerlesbaren Artikels umgesetzt werden, die eine Anweisung oder einen Anweisungssatz speichern können, die oder der, wenn sie von einer Maschine ausgeführt werden, die Maschine veranlassen können, ein Verfahren und/oder Vorgänge gemäß der Ausführungsformen auszuführen. Eine solche Maschine kann zum Beispiel eine geeignete Verarbeitungsplattform, eine Rechnerplattform, eine Computereinheit, eine Verarbeitungseinheit, ein Rechnersystem, ein Verarbeitungssystem, einen Computer, einen Prozessor oder ein ähnliches Element umfassen und kann mithilfe einer geeigneten Kombination aus Hardware und/oder Software umgesetzt werden. Das maschinenlesbare Medium oder der maschinenlesbare Artikel können zum Beispiel eine beliebige Art einer Arbeitsspeichereinheit, einer Arbeitsspeichereinrichtung, eines Arbeitsspeicherartikels, eines Arbeitsspeichermediums, einer Datenspeichereinrichtung, eines Datenspeicherartikels, eines Datenspeichermediums und/oder einer Datenspeichereinheit, zum Beispiel einen Arbeitsspeicher, wechselbare Medien oder nicht wechselbare Medien, löschbare oder nicht löschbare Medien, beschreibbare oder wiederbeschreibbare Medien, digitale oder analoge Medien, eine Festplatte, eine Diskette, einen Compact-Disk-Speicher (Compact Disk Read Only Memory, CD-ROM), eine beschreibbare Compact Disc (Compact Disc Recordable, CD-R), eine wieder beschreibbare Compact Disc (Compact Disc Rewriteable, CD-RW), eine optische Diskette, Magnetmedien, optomagnetische Medien, wechselbare Speicherkarten oder -disketten, verschiedene Arten von DVDs (Digital Versatile Discs), ein Magnetband, ein Kassette oder ein ähnliches Element umfassen. Die Anweisungen können eine geeignete Art eines Codes wie zum Beispiel einen Quellcode, einen kompilierten Code, einen interpretierten Code, einen ausführbaren Code, einen statischen Code, einen dynamischen Code, einen verschlüsselten Code oder einen ähnlichen Code umfassen, der mithilfe einer geeigneten Hochsprache, maschinennahen, objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache umgesetzt werden kann.
  • Soweit nicht ausdrücklich anderweitig festgelegt wurde, ist es selbstverständlich, dass Begriffe wie „verarbeiten”, „berechnen”, „ermitteln”, „bestimmen” und ähnliche sich auf die Aktion und/oder die Prozesse eines Computers oder Rechnersystems oder einer ähnliche elektronischen Rechnereinheit beziehen, bei denen Daten, die physikalische (z. B. elektronische) Größen darstellen, in den Registern und/oder Arbeitsspeichern des Rechnersystems in andere Daten, die auf ähnliche Weise physikalische Größen darstellen, innerhalb des Arbeitsspeichers, der Register oder anderer dieser Informationsspeicher-, Übertragungs- und Anzeigeeinheiten des Rechnersystems manipuliert und/oder transformiert werden können. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Der Begriff „verbunden” kann hier verwendet werden, um sich auf eine beliebige Art einer direkten oder indirekten Verbindung zwischen den infrage kommenden Komponenten zu beziehen, und kann auf elektrische, mechanische, flüssige, optische, elektromagnetische elektromechanische oder andere Verbindungen angewandt werden. Außerdem können die Begriffe „erste”, „zweite” usw. hier nur zur Vereinfachung der Erörterung verwendet werden und sie haben keine besondere vorübergehende oder zeitabhängige Bedeutung, ausgenommen wenn dies gegenteilig angezeigt wird. Außerdem ist es selbstverständlich, dass die unbestimmten Artikel ”ein” oder ”eine” die Bedeutung von „ein/eine oder mehrere” oder „mindestens ein/eine” haben. Außerdem kann eine Liste von Elementen in Verbindung mit den Begriffen „ein/eine oder mehrere” oder „mindestens ein/eine”, so wie sie in dieser Anmeldung und in den Ansprüchen verwendet werden, jede beliebige Kombination der aufgelisteten Begriffe bedeuten. Zum Beispiel kann „ein/eine oder mehrere von A, B oder C” oder „ein/eine oder mehrere von A, B und C” bedeuten A; B; C; A und B; A und C; B und C; oder A, B und C.
  • Für den Fachmann ist es aufgrund der vorangehenden Beschreibung selbstverständlich, dass die umfangreichen Techniken der Ausführungsformen der vorliegenden Erfindung in einer Vielfalt von Formen umgesetzt werden können. Obwohl die Ausführungsformen dieser Erfindung in Verbindung mit speziellen Beispielen davon beschrieben wurden, wird der wahre Umfang der Ausführungsformen der Erfindung daher nicht auf diese Weise eingeschränkt, da weitere Änderungen für den Fachmann nach einem Studium der Zeichnungen, der Beschreibung und der nachfolgenden Ansprüche offensichtlich werden.

Claims (25)

  1. Vorrichtung zum Abtasten einer Textur, umfassend: einen oder mehrere Prozessoren, die eine oder mehrere Pipelines umfassen, wobei die eine oder mehreren Pipelines umfassen: eine dreidimensionale (3D) Grafikpipeline, die ein Standortmodul zum Texturabtasten umfasst, um Standortdaten des Texturabtastens bereitzustellen, die einer Textur entsprechen, wobei ein Abtasten der Textur außerhalb der 3D-Grafikpipeline ausgeführt wird; und eine Rechnerpipeline, die ein Ergebnismodul für das Texturabtasten umfasst, um ein Abtasten der Textur mithilfe der Standortdaten des Texturabtastens auszuführen und um Ergebnisdaten des Texturabtastens bereitzustellen, die der Textur entsprechen, wobei ein Wiedergabemodul der 3D-Grafikpipeline, dafür vorgesehen ist, ein Einzelbild mithilfe der Ergebnisdaten des Texturabtastens aufzubauen.
  2. Vorrichtung nach Anspruch 1, wobei: das Standortmodul zum Texturabtasten einen Pufferspeicher für Abtastinformationen erzeugt, der die Standortdaten des Texturabtastens enthält; das Ergebnismodul für das Texturabtasten den Pufferspeicher für Abtastinformationen liest, um das Abtasten auszuführen und einen Pufferspeicher für eine Texturschicht erzeugt, der die Ergebnisdaten des Texturabtastens enthält; und das Wiedergabemodul den Pufferspeicher für die Texturschicht liest, um das Einzelbild aufzubauen.
  3. Vorrichtung nach Anspruch 2, wobei: die 3D-Grafikpipeline eine 3D-Anwendungsprogrammierschnittstelle (3D Application Programming Interface, API) für eine Grafikbibliothek (Graphics Library, GL) unterstützt, um den Pufferspeicher für Abtastinformationen zu erzeugen, der einen oder mehrere aus einer uv-Koordinate, einem Gradienten und einer Texturbehandlung enthält; und die Rechnerpipeline eine Rechner-API unterstützt, um die Abtastung auszuführen und den Pufferspeicher für die Texturschicht einschließlich der Farbdaten zu erzeugen.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, wobei die Rechnerpipeline ein Fehlerverwaltungsmodul umfasst, um einen Seitenfehler zu verwalten, wobei einer oder mehrere aus dem Seitenfehler und der Verwaltung des Seitenfehlers vor einer Grafikanwendung verborgen werden.
  5. Vorrichtung nach Anspruch 4, wobei die Rechnerpipeline ein Kontextwechselmodul umfasst, um einen Rechnerkontext auszuwechseln, der dem Seitenfehler zugeordnet ist, sodass erlaubt wird, dass eine Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, ausgeführt wird und eine Blockierung als Reaktion auf den Seitenfehler verhindert wird.
  6. Vorrichtung nach Anspruch 4, wobei die 3D-Grafikpipeline ein 3D-Grafikaufgabenmodul umfasst, um eine 3D-Grafikaufgabe auszuführen, die nicht dem Seitenfehler zugeordnet ist, wenn das Fehlerverwaltungsmodul den Seitenfehler verwaltet.
  7. Vorrichtung nach Anspruch 4, wobei die 3D-Grafikpipeline ein Ergebnismodul für ein alternatives Texturabtasten umfasst, um Ergebnisdaten eines alternativen Texturabtastens so zu erzeugen, dass das Einzelbild aufgebaut wird, wenn die Ergebnisdaten des Texturabtastens nicht innerhalb eines vorbestimmten Zeitraums zur Verfügung stehen.
  8. Vorrichtung nach Anspruch 7, wobei das Ergebnisdatenmodul für das alternative Texturabtasten ein Abtasten eines dauerhaft vorhandenen relativ gröberen MIP-map der Textur ausführt, um die Ergebnisdaten des alternativen Texturabtastens zu erzeugen.
  9. Vorrichtung nach Anspruch 4, wobei die 3D-Grafikpipeline ein Wartemodul umfasst, damit die 3D-Grafikpipeline wartet, bis das Fehlerverwaltungsmodul den Seitenfehler repariert hat, um das Einzelbild aufzubauen, wobei das Warten die 3D-Grafikpipeline mit der Rechnerpipeline ohne ein ausdrückliches Ende synchronisiert.
  10. Vorrichtung nach Anspruch 1, wobei die Rechnerpipeline einen oder mehrere aus einem Detaillierungsgrad-Bias (Level Of Detail bias, LOD-Bias) und einer Abfertigung eines Thread-Teilsatzes umsetzt, um der Rechnerpipeline zu erlauben, dass sie an die 3D-Grafikpipeline angeglichen wird.
  11. Verfahren zum Abtasten einer Textur, umfassend: Bereitstellen von Standortdaten des Texturabtastens, die einer Textur entsprechen, über eine dreidimensionale (3D) Grafikpipeline, wobei ein Abtasten der Textur außerhalb der 3D-Grafikpipeline ausgeführt wird; Ausführen eines Abtastens über eine Rechnerpipeline mithilfe der Standortdaten des Texturabtastens; und Bereitstellen von Ergebnisdaten des Texturabtastens, die der Textur entsprechen, über die Rechnerpipeline, wobei die 3D-Grafikpipeline mithilfe der Ergebnisdaten des Texturabtastens ein Einzelbild aufbaut.
  12. Verfahren nach Anspruch 11, das außerdem umfasst: Erzeugen eines Pufferspeichers für Abtastinformationen, der die Standortdaten des Texturabtastens enthält, über die 3D-Grafikpipeline; Lesen des Pufferspeichers für Abtastinformationen über die Rechnerpipeline, um das Abtasten auszuführen, und Erzeugen eines Pufferspeichers für eine Texturschicht, der Ergebnisdaten des Texturabtastens enthält; und Lesen des Pufferspeichers für die Texturschicht über die 3D-Grafikpipeline, um das Einzelbild aufzubauen.
  13. Verfahren nach Anspruch 12, das außerdem umfasst: Unterstützen einer 3D-Anwendungsprogrammierschnittstelle (3D Application Programming Interface, API) für eine Grafikbibliothek (Graphics Library, GL) über die 3D-Grafikpipeline, um den Pufferspeicher für Abtastinformationen zu erzeugen, der eine oder mehrere aus einer uv-Koordinate, einem Gradienten und einer Texturbehandlung enthält; und Unterstützen einer Rechner-API über die Rechnerpipeline, um den Pufferspeicher für die Texturschicht einschließlich der Farbdaten zu erzeugen.
  14. Verfahren nach einem der Ansprüche 11 bis 13, das außerdem ein Verwalten eines Seitenfehlers über die Rechnerpipeline umfasst, wobei einer oder mehrere aus dem Seitenfehler und der Verwaltung des Seitenfehlers vor einer Grafikanwendung verborgen wird.
  15. Verfahren nach Anspruch 14, das außerdem ein Auswechseln eines dem Seitenfehler zugehörigen Rechnerkontexts über die Rechnerpipeline umfasst, sodass erlaubt wird, dass eine Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, ausgeführt wird und eine Blockierung als Reaktion auf den Seitenfehler verhindert wird.
  16. Verfahren nach Anspruch 14, das außerdem ein Ausführen einer 3D-Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, über die 3D-Grafikpipeline umfasst, wenn die Rechnerpipeline den Seitenfehler verwaltet.
  17. Verfahren nach Anspruch 14, das außerdem ein Erzeugen von Ergebnisdaten eines alternativen Texturabtastens über die 3D-Grafikpipeline umfasst, um das Einzelbild aufzubauen, wenn die Ergebnisdaten des Texturabtastens nicht innerhalb eines vorbestimmten Zeitraums zur Verfügung stehen.
  18. Mindestens ein computerlesbares Speichermedium, das eine oder mehrere Anweisungen umfasst, die, wenn sie in einer Rechnereinheit ausgeführt werden, die Rechnereinheit veranlassen zum: Bereitstellen einer dreidimensionalen (3D) Grafikpipeline, die Standortdaten des Texturabtastens enthält, die einer Textur entsprechen, wobei ein Abtasten der Textur außerhalb der 3D-Grafikpipeline ausgeführt wird; Ausführen eines Abtastens über eine Rechnerpipeline mithilfe der Standortdaten des Texturabtastens; und Bereitstellen von Ergebnisdaten des Texturabtastens, die der Textur entsprechen, über die Rechnerpipeline, wobei die 3D-Grafikpipeline mithilfe der Ergebnisdaten des Texturabtastens ein Einzelbild aufbaut.
  19. Mindestens ein Medium nach Anspruch 18, wobei, wenn die eine oder mehreren Anweisungen ausgeführt werden, sie die Rechnereinheit veranlassen zum: Erzeugen eines Pufferspeichers für Abtastinformationen, der die Standortdaten des Texturabtastens enthält, über die 3D-Grafikpipeline; Lesen des Pufferspeichers für Abtastinformationen über die Rechnerpipeline, um das Abtasten auszuführen und Erzeugen eines Pufferspeichers für eine Texturschicht, der die Ergebnisdaten des Texturabtastens enthält; und Lesen des Pufferspeichers für die Texturschicht über die 3D-Grafikpipeline, um das Einzelbild aufzubauen.
  20. Mindestens ein Medium nach Anspruch 19, wobei, wenn die eine oder mehreren Anweisungen ausgeführt werden, sie die Rechnereinheit veranlassen zum: Unterstützen einer 3D-Anwendungsprogrammierschnittstelle (3D Application Programming Interface, API) für eine Grafikbibliothek (Graphics Library, GL) über die 3D-Grafikpipeline, um den Pufferspeicher für Abtastinformationen zu erzeugen, der eine oder mehrere aus einer uv-Koordinate, einem Gradienten und einer Texturbehandlung enthält; und Unterstützen einer Rechner-API über die Rechnerpipeline, um den Pufferspeicher für die Texturschicht einschließlich der Farbdaten zu erzeugen.
  21. Mindestens ein Medium nach einem der Ansprüche 18 bis 20, wobei, wenn die eine oder mehreren Anweisungen ausgeführt werden, sie die Rechnereinheit veranlassen, einen Seitenfehler über die Rechnerpipeline zu verwalten, wobei einer oder mehrere aus dem Seitenfehler und der Verwaltung des Seitenfehlers vor einer Grafikanwendung verborgen werden.
  22. Mindestens ein Medium nach Anspruch 21, wobei, wenn die eine oder mehreren Anweisungen ausgeführt werden, sie die Rechnereinheit veranlassen, einen dem Seitenfehler zugehörigen Rechnerkontext über die Rechnerpipeline auszuwechseln, sodass erlaubt wird, dass eine Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, ausgeführt wird und eine Blockierung als Reaktion auf den Seitenfehler verhindert wird.
  23. Mindestens ein Medium nach Anspruch 21, wobei, wenn die eine oder mehreren Anweisungen ausgeführt werden, sie die Rechnereinheit veranlassen, eine 3D-Grafikaufgabe, die nicht dem Seitenfehler zugeordnet ist, über die 3D-Grafikpipeline auszuführen, wenn die Rechnerpipeline den Seitenfehler verwaltet.
  24. Mindestens ein Medium nach Anspruch 21, wobei, wenn die eine oder mehreren Anweisungen ausgeführt werden, sie die Rechnereinheit veranlassen, Ergebnisdaten eines alternativen Texturabtastens über die 3D-Grafikpipeline zu erzeugen, um das Einzelbild aufzubauen, wenn die Ergebnisdaten des Texturabtastens nicht innerhalb eines vorbestimmten Zeitraums zur Verfügung stehen.
  25. Vorrichtung zum Abtasten einer Textur, die Elemente zum Ausführen des Verfahrens nach einem der Ansprüche 11 bis 17 umfasst.
DE102015006750.8A 2014-06-27 2015-05-26 Abtasten, fehlerverwaltung und/oder kontextwechsel über eine rechnerpipeline Withdrawn DE102015006750A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/318,562 US9449363B2 (en) 2014-06-27 2014-06-27 Sampling, fault management, and/or context switching via a compute pipeline
US14/318,562 2014-06-27

Publications (1)

Publication Number Publication Date
DE102015006750A1 true DE102015006750A1 (de) 2015-12-31

Family

ID=53506291

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015006750.8A Withdrawn DE102015006750A1 (de) 2014-06-27 2015-05-26 Abtasten, fehlerverwaltung und/oder kontextwechsel über eine rechnerpipeline

Country Status (5)

Country Link
US (1) US9449363B2 (de)
CN (1) CN105321142B (de)
DE (1) DE102015006750A1 (de)
GB (1) GB2528558B (de)
TW (1) TWI576784B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105957137B (zh) * 2016-04-20 2018-09-21 上海交通大学 基于纹理映射的三维彩色模型图像处理方法
US11228754B2 (en) 2016-05-06 2022-01-18 Qualcomm Incorporated Hybrid graphics and pixel domain architecture for 360 degree video
US10388058B2 (en) 2017-02-16 2019-08-20 Microsoft Technology Licensing, Llc Texture residency hardware enhancements for graphics processors
US11609791B2 (en) * 2017-11-30 2023-03-21 Advanced Micro Devices, Inc. Precise suspend and resume of workloads in a processing unit
CN108121566A (zh) * 2017-12-06 2018-06-05 中国航空工业集团公司西安航空计算技术研究所 一种图形指令解析设计方法
CN111008042B (zh) * 2019-11-22 2022-07-05 中国科学院计算技术研究所 基于异构流水线的高效通用处理器执行方法及系统
CN113760278A (zh) * 2021-01-13 2021-12-07 北京沃东天骏信息技术有限公司 一种页面管理方法和装置
CN114978926B (zh) * 2022-05-17 2023-09-19 电子科技大学 一种适用于确定性网络协议的仿真方法及设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6259460B1 (en) 1998-03-26 2001-07-10 Silicon Graphics, Inc. Method for efficient handling of texture cache misses by recirculation
US6297832B1 (en) * 1999-01-04 2001-10-02 Ati International Srl Method and apparatus for memory access scheduling in a video graphics system
US7274365B1 (en) * 2003-01-31 2007-09-25 Microsoft Corporation Graphical processing of object perimeter information
US7013383B2 (en) * 2003-06-24 2006-03-14 Via-Cyrix, Inc. Apparatus and method for managing a processor pipeline in response to exceptions
US20050140688A1 (en) * 2003-12-29 2005-06-30 Kim Pallister Method and mechanism for programmable filtering of texture map data in 3D graphics subsystems
US20060174232A1 (en) * 2005-02-02 2006-08-03 Bluestreak Media Inc. Interger-based calculation method
US8817035B2 (en) 2005-12-21 2014-08-26 Nvidia Corporation Texture pipeline context switch
US8325184B2 (en) * 2007-09-14 2012-12-04 Qualcomm Incorporated Fragment shader bypass in a graphics processing unit, and apparatus and method thereof
US8174534B2 (en) * 2007-12-06 2012-05-08 Via Technologies, Inc. Shader processing systems and methods
US8159505B2 (en) 2008-10-01 2012-04-17 Ati Technologies Ulc System and method for efficient digital video composition
US20120229481A1 (en) * 2010-12-13 2012-09-13 Ati Technologies Ulc Accessibility of graphics processing compute resources
JP5891388B2 (ja) * 2011-03-31 2016-03-23 パナソニックIpマネジメント株式会社 立体視画像の描画を行う画像描画装置、画像描画方法、画像描画プログラム
US9153065B2 (en) * 2013-02-05 2015-10-06 Google Technology Holdings LLC System and method for adjusting image pixel color to create a parallax depth effect
US9390463B2 (en) * 2013-08-12 2016-07-12 Intel Corporation Techniques for reducing memory bandwidth for display composition
US20150084952A1 (en) * 2013-09-23 2015-03-26 Nvidia Corporation System, method, and computer program product for rendering a screen-aligned rectangle primitive

Also Published As

Publication number Publication date
GB2528558A (en) 2016-01-27
CN105321142B (zh) 2019-04-02
TW201604831A (zh) 2016-02-01
US20150379730A1 (en) 2015-12-31
TWI576784B (zh) 2017-04-01
CN105321142A (zh) 2016-02-10
US9449363B2 (en) 2016-09-20
GB2528558B (en) 2018-05-09
GB201508928D0 (en) 2015-07-01

Similar Documents

Publication Publication Date Title
DE102015006750A1 (de) Abtasten, fehlerverwaltung und/oder kontextwechsel über eine rechnerpipeline
DE112014002469B4 (de) System und Verfahren zur Erzeugung von Bildern für eine augennaheLichtfeldanzeige
DE102018132468A1 (de) Multi-gpu-frame-rendern
DE112011103209B4 (de) Verfahren, vorrichtung und system zur steuerung von anzeigeaktivität
DE102015002218B4 (de) Vermeiden des Sendens unveränderlicher Gebiete zur Anzeige
DE102019119102A1 (de) Spärliche repräsentation für voxel
DE102018127647A1 (de) Systeme und verfahren zum trainieren neuronaler netzwerke auf regression ohne referenzdaten-trainingsmuster
DE102013017640A1 (de) Verteilte gekachelte Zwischenspeicherung
DE102018114286A1 (de) Durchführen einer Traversierungs-Stack-Komprimierung
US11403121B2 (en) Streaming per-pixel transparency information using transparency-agnostic video codecs
DE102013224046A1 (de) System, Verfahren und Computer-Programm-Produkt zum Debuggen von Grafik-Programmen lokal unter Benutzung eines Systems mit einer einzelnen GPU
DE102013020808A1 (de) Effiziente Autostereo-Unterstützung unter Verwendung von Anzeigesteuerungsfenster
DE202009019145U1 (de) Hardware-beschleunigte Grafiken für Online-Applikationen mithilfe von nativen Code-Modulen
DE102019119085A1 (de) Punktbasiertes rendern und entfernung von projektionsrauschen
DE102016109905A1 (de) Stückweise lineare unregelmäßige Rasterisierung
DE112014002771T5 (de) Hybrid-on-Demand-Grafikübersetzungstabellen-Shadowing
DE102018101030A1 (de) Filterung von Bilddaten unter Verwendung eines neutralen Netzwerks
DE102015002365A1 (de) Prioritätsbasierte kontextpräemption
DE102021207678A1 (de) Streamen eines komprimierten lichtfelds
DE112013004618T5 (de) Tiefenpufferung
DE112017003838T5 (de) Threadprioritätsmechanismus
DE102021127982A1 (de) Streaming eines lichtfeldes mit verlustfreier oder verlustbehafteter kompression
DE112017004077T5 (de) Einrichtung und verfahren für optimiertes kachelbasiertes rendering
DE102020105902A1 (de) Hardware-indexzuordnungsmechanismus
DE102013018135A1 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee