Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified source/images/rogue-graphics-software-stack.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
.. include:: <isonum.txt>

.. _opencl-api-overview:

######
OpenCL
######
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
.. include:: <isonum.txt>

.. _opengles-api-overview:

#########
OpenGL ES
#########
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
.. include:: <isonum.txt>

.. _vulkan-api-overview:

######
Vulkan
######
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _rogue-build-guide:

###########
Build guide
###########
Expand Down
94 changes: 55 additions & 39 deletions source/linux/Foundational_Components/Graphics/Rogue/Overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,17 @@
It enables the support of 3D graphics rendering using OpenGL\ |reg| ES
API's. The OpenGL\ |reg| ES API's up to and including version 3.2 with
render surfaces upto 4k and input textures upto 8k sizes are supported by
the hardware. It also supports Vulkan |reg| up to API version 1.2.
the hardware. It also supports Vulkan |reg| up to API version 1.3.

For more information about OpenGL\ |reg| ES see :ref:`opengles-api-overview`.

For more information about Vulkan\ |reg| see :ref:`vulkan-api-overview`.

For more information about OpenCL\ |reg| see :ref:`opencl-api-overview`.

.. note::

Libraries are provided at `<https://git.ti.com/cgit/graphics/ti-img-rogue-umlibs/>`_

The following extensions are supported:

Expand All @@ -26,7 +36,17 @@
It enables the support of 3D graphics rendering using OpenGL\ |reg| ES
API's. The OpenGL\ |reg| ES API's up to and including version 3.1 with
render surfaces upto 2k and input textures upto 4k sizes are supported by
the hardware. It also supports Vulkan |reg| up to API version 1.2.
the hardware. It also supports Vulkan |reg| up to API version 1.3.

For more information about OpenGL\ |reg| ES see :ref:`opengles-api-overview`.

For more information about Vulkan\ |reg| see :ref:`vulkan-api-overview`.

For more information about OpenCL\ |reg| see :ref:`opencl-api-overview`.

.. note::

Libraries are provided, at `<https://git.ti.com/cgit/graphics/ti-img-rogue-umlibs/>`_

The following extensions are supported:

Expand All @@ -40,13 +60,29 @@
Inc. It enables the support of 3D graphics rendering using OpenGL\ |reg| ES
API's. The OpenGL\ |reg| ES API's up to and including version 3.2 with
render surfaces upto 4k and input textures upto 8k sizes are supported by
the hardware. It also supports Vulkan |reg| up to API version 1.2.
the hardware. It also supports Vulkan |reg| up to API version 1.3.

For more information about OpenGL\ |reg| ES see :ref:`opengles-api-overview`.

For more information about Vulkan\ |reg| see :ref:`vulkan-api-overview`.

For more information about OpenCL\ |reg| see :ref:`opencl-api-overview`.

.. note::

Libraries are provided, at `<https://git.ti.com/cgit/graphics/ti-img-rogue-umlibs/>`_

The following extensions are supported:

.. include:: _BXS_Extension_List.rst

For more information about OpenGL\ |reg| ES see :doc:`../Common/OpenGL_ES`.

.. note::

Utilize ``vulkaninfo`` and ``eglinfo`` to list supported extensions.

Check failure on line 82 in source/linux/Foundational_Components/Graphics/Rogue/Overview.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsErrors] Use 'use' rather than 'Utilize'. Raw Output: {"message": "[RedHat.TermsErrors] Use 'use' rather than 'Utilize'.", "location": {"path": "source/linux/Foundational_Components/Graphics/Rogue/Overview.rst", "range": {"start": {"line": 82, "column": 4}}}, "severity": "ERROR"}

Check warning on line 82 in source/linux/Foundational_Components/Graphics/Rogue/Overview.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.SimpleWords] Use simple language. Consider using 'use' rather than 'Utilize'. Raw Output: {"message": "[RedHat.SimpleWords] Use simple language. Consider using 'use' rather than 'Utilize'.", "location": {"path": "source/linux/Foundational_Components/Graphics/Rogue/Overview.rst", "range": {"start": {"line": 82, "column": 4}}}, "severity": "INFO"}

General Features

Check warning on line 84 in source/linux/Foundational_Components/Graphics/Rogue/Overview.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Headings] Use sentence-style capitalization in 'General Features'. Raw Output: {"message": "[RedHat.Headings] Use sentence-style capitalization in 'General Features'.", "location": {"path": "source/linux/Foundational_Components/Graphics/Rogue/Overview.rst", "range": {"start": {"line": 84, "column": 1}}}, "severity": "INFO"}
================

These devices do not use static memory carve-outs. The only reservations made in
device tree are for control registers. Memory is instead dynamically allocated
Expand All @@ -55,11 +91,6 @@
allocations are from standard pages. See the kernel module memory management
subsystem for more information.

.. note::

OpenCL\ |reg| libraries are also provided, without support, at
`<https://git.ti.com/cgit/graphics/ti-img-rogue-umlibs/>`_


Other features of the Rogue series of GPUs include bilinear and trilinear
filtering.
Expand Down Expand Up @@ -117,53 +148,38 @@

.. figure:: /images/rogue-graphics-software-stack.png
:align: center
:width: 750px

PSDK Linux Rogue Graphics Software Stack

Please note that the Rogue Graphics Kernel Module (RGX-KM) in this context
refers to ``pvrsrvkm``, which is currently provided at:

- `<https://git.ti.com/cgit/graphics/ti-img-rogue-driver>`_

The SDK includes this by default. The kernel module is available at 2 possible
locations depending on the kernel version selected. Before kernel 6.6 the
location for external modules was :file:`extra/`, from 6.6 onward the location
is :file:`updates/`:
* More information regarding Mesa can be found within the :ref:`rogue-build-guide`

Check warning on line 155 in source/linux/Foundational_Components/Graphics/Rogue/Overview.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.PassiveVoice] 'be found' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice. Raw Output: {"message": "[RedHat.PassiveVoice] 'be found' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice.", "location": {"path": "source/linux/Foundational_Components/Graphics/Rogue/Overview.rst", "range": {"start": {"line": 155, "column": 39}}}, "severity": "INFO"}
* ``RGX-KM`` refers to the kernel module, within the filesystem it is named ``pvrsrvkm.ko``
* Within the SDK, the Weston Compositor is used, an implementation of Wayland specification

Check warning on line 157 in source/linux/Foundational_Components/Graphics/Rogue/Overview.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.PassiveVoice] 'is used' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice. Raw Output: {"message": "[RedHat.PassiveVoice] 'is used' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice.", "location": {"path": "source/linux/Foundational_Components/Graphics/Rogue/Overview.rst", "range": {"start": {"line": 157, "column": 41}}}, "severity": "INFO"}
* More information regarding integration of this software stack into other ecosystems can be
found at :ref:`rogue-build-guide`

.. code-block:: console

# /lib/modules/$(uname -r)/<external_dir>/pvrsrvkm.ko
.. note::

Please see the :doc:`Build_Guide` for more information about integration of
this software stack into other ecosystems.
The kernel module is available at 2 possible locations depending on the kernel version
selected. Before kernel 6.6 the location for external modules was :file:`extra/`, from
6.6 onward the location is :file:`updates/`.

Graphics demos
==============

Along with the graphics driver and user space libraries, the SDK also includes
example applications. Some demos are from on the Imagination (IMG) Native_SDK
examples.
example applications.

The following 3D Graphics demos are available. The following table provides a
list of these demos, with a brief description.
The following 3D Graphics demos are available:

.. list-table:: Demos
:widths: 25 75
:header-rows: 1

* - Demo Name
- Details
* - ``ChameleonMan``
- This demo shows a matrix skinned character in combination with bump
mapping.
* - ``CoverFlow``
- This is a demonstration of a coverflow style effect
* - ``ExampleUI``
- This demo shows how to efficiently render sprites and interface
elements.
* - ``Navigation``
- This is a demonstration of how to implement rendering algorithms for
Navigation software.
* - ``Kmscube``
- This demo shows how to render and display multi-colored spinning cube

* - ``offscreendemo``
- Lightweight Render Example. Heavily inspired by Eduardo Lima's gpu-playground,
this attempts to act as the smallest demo of offscreen rendering.
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ libraries:
- Try several blit operations and display them to the screen
* - ``rgx_compute_test``
- Try several different compute tasks on the core
* - ``rgx_kicksync_test``
- Try several processes on the core to stress the KickSync API
* - ``rgx_triangle_test``
- Render a triangle to the attached display
* - ``rgx_twiddling_test``
Expand All @@ -32,9 +30,6 @@ most useful for verifying GPU functionality.

The order of operation to verify fundamental GPU functionality is as follows:

#. Use ``rgx_kicksync_test`` to verify the GPU can communicate with the
kernel module.

#. Use ``rgx_compute_test`` to verify that the GPU is able to handle a proper
compute load.

Expand Down
Loading