Driver layer GPU libraries and tests for PSP2

Overview

PVR_PSP2

Driver layer GPU libraries and tests for PSP2

Currently this project include:

  1. Common and PSP2-specific GPU driver headers.
  2. Extension library for GPU driver (libgpu_es4_ext), which includes:
  • Full Display Class API implementation;
  • Lowlevel USE codegen code;
  • OS and kernel bridge extensions.
  1. PVR2D port for PSP2.
  2. Various unittests to check basic driver features.

Unittest status

Basic:

Test Status
services_test Passed
sgx_init_test Passed
sgx_flip_test Passed
sgx_render_flip_test Passed

Libs:

Test Status
pvr2d_test Passed
gles1test WIP

Library port status

Library Status
PVR2D Completed
WSEGL WIP
IMGEGL WIP
OpenGLES1 WIP
You might also like...
Tensors and Dynamic neural networks in Python with strong GPU acceleration
Tensors and Dynamic neural networks in Python with strong GPU acceleration

PyTorch is a Python package that provides two high-level features: Tensor computation (like NumPy) with strong GPU acceleration Deep neural networks b

Hardware-accelerated DNN model inference ROS2 packages using NVIDIA Triton/TensorRT for both Jetson and x86_64 with CUDA-capable GPU.
Hardware-accelerated DNN model inference ROS2 packages using NVIDIA Triton/TensorRT for both Jetson and x86_64 with CUDA-capable GPU.

Isaac ROS DNN Inference Overview This repository provides two NVIDIA GPU-accelerated ROS2 nodes that perform deep learning inference using custom mode

A lightweight 2D Pose model  can be deployed on Linux/Window/Android, supports CPU/GPU inference acceleration, and can be detected in real time on ordinary mobile phones.
A lightweight 2D Pose model can be deployed on Linux/Window/Android, supports CPU/GPU inference acceleration, and can be detected in real time on ordinary mobile phones.

A lightweight 2D Pose model can be deployed on Linux/Window/Android, supports CPU/GPU inference acceleration, and can be detected in real time on ordinary mobile phones.

SIMULATeQCD is a multi-GPU Lattice QCD framework that makes it simple and easy for physicists to implement lattice QCD formulas while still providing the best possible performance.

SIMULATeQCD a SImple MUlti-GPU LATtice code for QCD calculations SIMULATeQCD is a multi-GPU Lattice QCD framework that makes it simple and easy for ph

Raytracer implemented with CPU and GPU using CUDA
Raytracer implemented with CPU and GPU using CUDA

Raytracer This is a training project aimed at learning ray tracing algorithm and practicing convert sequential CPU code into a parallelized GPU code u

An open source iOS framework for GPU-based image and video processing
An open source iOS framework for GPU-based image and video processing

GPUImage Brad Larson http://www.sunsetlakesoftware.com @bradlarson [email protected] Overview The GPUImage framework is a BSD-licensed iO

A GPU (CUDA) based Artificial Neural Network library
A GPU (CUDA) based Artificial Neural Network library

Updates - 05/10/2017: Added a new example The program "image_generator" is located in the "/src/examples" subdirectory and was submitted by Ben Bogart

GPU Cloth TOP in TouchDesigner using CUDA-enabled NVIDIA Flex
GPU Cloth TOP in TouchDesigner using CUDA-enabled NVIDIA Flex

This project demonstrates how to use NVIDIA FleX for GPU cloth simulation in a TouchDesigner Custom Operator. It also shows how to render dynamic meshes from the texture data using custom PBR GLSL material shaders inside TouchDesigner.

RDO BC1-7 GPU texture encoders

bc7enc - Fast BC1-7 GPU texture encoders with Rate Distortion Optimization (RDO) This repo contains fast texture encoders for BC1-7. All formats suppo

Comments
  • eglGetProcAddress returns NULL for GLES functions, while those functions are actually callable

    eglGetProcAddress returns NULL for GLES functions, while those functions are actually callable

    Hi, I'm trying to port a game using PVR_PSP2, which loads GL functions dynamically but found eglGetProcAddress didn't return right address. The situation is:

    init_pvr_psp2();
    init_egl();
    auto addr = reinterpret_cast<uint32_t>(eglGetProcAddress("glGetError"));
    log("glGetError addr = %x, error = %x\n", addr, eglGetError());
    // prints: glGetError addr = 0, error = 3000
    log("glGetError = %d\n", glGetError());
    // prints: glGetError = 0, might indicate that GLES module are loaded
    addr = reinterpret_cast<uint32_t>(eglGetProcAddress("glGetError"));
    log("glGetError addr = %x, error = %x\n", addr, eglGetError());
    // prints: glGetError addr = 0, error = 3000
    

    The complete test code can be found here. Additionally, loading libGLESv1_CM.suprx manually in init_pvr_psp2 would solve this problem. But I thought this might not be the correct way to use it. Anyway, thanks for developing this excellent repo! Any help will be appreciated.

    opened by kaaass 5
  • Additions and changes

    Additions and changes

    Made adjustments to SGXGetRenderTargetMemSize

    Moved some defines from psp2_pvr_defs.h and added some new defines to the relevant headers.

    Renamed and added comments to psp2 specific fields of SGX_KICKTA_COMMON.

    opened by bythos14 0
  • EglProcAddress Core Functions/Runtime Checked Modules

    EglProcAddress Core Functions/Runtime Checked Modules

    Tried to make this as close to how it was handled originally.

    Added Core Functions for both GLES1.1 and GLES2.0 in their respective GetProcAddress functions. Enabled by EGL_CORE_FUNC.

    API_MODULES_RUNTIME_CHECKED is now defined and functionality fixed, allowing EGL to check which graphics library is available at any given time by AppHint paths. This change is entirely internal and results in no changes for the developer.

    opened by SonicMastr 0
  • Assignment of gl_Position in different places leads to different results.

    Assignment of gl_Position in different places leads to different results.

    Hi. When I try to use glsl to write a vertex shader. Everything runs well when I put the assignment of gl_Position in the first line of the main() function. But when I move it to the last line of the main() function, an error occurred in the vertex coordinates.

    This is my repository: https://github.com/ZeroNinx/VitaTest

    If you want to get a wrong result, just move the assignment of gl_Position to the last line of the main() function in data/Shader/VertexShader.glsl.

    like this:

    #version 100
    
    attribute vec3 aPos; //顶点位置
    attribute vec2 aTexCoord; //纹理坐标
    attribute vec3 aNormal; //法向量
    
    uniform mat4 ModelMat; //模型矩阵
    uniform mat4 ViewMat; //相机矩阵
    uniform mat4 ProjMat; //投影矩阵
    uniform mat4 TranspostInverseModelMat; //模型矩阵左上角的逆矩阵的转矩阵(用于计算法向量)
    
    varying vec3 FragPos; //片段位置
    varying vec2 TexCoord; //纹理坐标
    varying vec3 Normal; //法向量
    
    void main()
    {
       //Place it here is right
       // gl_Position = ProjMat * ViewMat * ModelMat * vec4(aPos, 1.0);
    
        TexCoord = aTexCoord;
        FragPos = vec3(ModelMat * vec4(aPos, 1.0));
        Normal = mat3(TranspostInverseModelMat) * aNormal;
    
       //Place here cause vertex coordinates error
       gl_Position = ProjMat * ViewMat * ModelMat * vec4(aPos, 1.0);
    }
    
    opened by ZeroNinx 2
Releases(v3.8)
Owner
null
A custom GEGL filter that does layer effects. It may not be non-destructive but you can make presets of your favorite text styles

A custom GEGL filter that does layer effects. It may not be non-destructive but you can make presets of your favorite text styles. Futures plans are going to include an image file overlay, and pro tip you can do a multistroke if sacrifice a shadow/glow.

null 11 Jan 2, 2023
PicoSystem libraries and examples.

PicoSystem libraries and examples PicoSystem is a pocket sized handheld games console, built around Raspberry Pi's RP2040 chip (that's the little fell

Pimoroni Ltd 83 Jan 3, 2023
Mobile Robot Programming Toolkit (MRPT) provides C++ libraries aimed at researchers in mobile robotics and computer vision

The MRPT project 1. Introduction Mobile Robot Programming Toolkit (MRPT) provides C++ libraries aimed at researchers in mobile robotics and computer v

MRPT 1.6k Dec 24, 2022
A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.

Website | Documentation | Tutorials | Installation | Release Notes CatBoost is a machine learning method based on gradient boosting over decision tree

CatBoost 6.9k Dec 31, 2022
CTranslate2 is a fast inference engine for OpenNMT-py and OpenNMT-tf models supporting both CPU and GPU executio

CTranslate2 is a fast inference engine for OpenNMT-py and OpenNMT-tf models supporting both CPU and GPU execution. The goal is to provide comprehensive inference features and be the most efficient and cost-effective solution to deploy standard neural machine translation systems such as Transformer models.

OpenNMT 395 Jan 2, 2023
a fast and user-friendly runtime for transformer inference (Bert, Albert, GPT2, Decoders, etc) on CPU and GPU.

a fast and user-friendly runtime for transformer inference (Bert, Albert, GPT2, Decoders, etc) on CPU and GPU.

Tencent 1.2k Dec 29, 2022
Docker files and scripts to setup and run VINS-FUSION-gpu on NVIDIA jetson boards inside a docker container.

jetson_vins_fusion_docker This repository provides Docker files and scripts to easily setup and run VINS-FUSION-gpu on NVIDIA jetson boards inside a d

Mohamed Abdelkader Zahana 22 Dec 18, 2022
Radeon Rays is ray intersection acceleration library for hardware and software multiplatforms using CPU and GPU

RadeonRays 4.1 Summary RadeonRays is a ray intersection acceleration library. AMD developed RadeonRays to help developers make the most of GPU and to

GPUOpen Libraries & SDKs 980 Dec 29, 2022
HugeCTR is a GPU-accelerated recommender framework designed to distribute training across multiple GPUs and nodes and estimate Click-Through Rates (CTRs)

Merlin: HugeCTR HugeCTR is a GPU-accelerated recommender framework designed to distribute training across multiple GPUs and nodes and estimate Click-T

null 764 Jan 2, 2023
Implementing Deep Convolutional Neural Network in C without External Libraries for YUV video Super-Resolution

DeepC: Implementing Deep Convolutional Neural Network in C without External Libraries for YUV video Super-Resolution This code uses FSRCNN algorithm t

Milad Abdollahzadeh 13 Dec 27, 2022