问题标签 [mali]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
430 浏览

qt - OpenGL|ES 2.0 glClear 命令冻结直到窗口状态改变

我的 OpenGL|ES 2.0 glClear 命令会冻结,直到窗口状态发生变化(例如,窗口被隐藏或显示)。

目标平台是带有 Mali 400 GPU 的 ARM7。

所有代码大部分都从 Qt OpenGL ES Cube 示例中复制而来。

我忘记了什么?

莱昂

来源:#include“streamplayer.h”

0 投票
2 回答
970 浏览

android - Android OpenGL ES 不光栅化 - 矩阵乘法切换

我刚买了一个新的 SGS3 (I9300 - NOT LTE ),并希望继续开发 OpenGL ES (2) 应用程序。不幸的是,当我编译它时,我什么也没看到。

我收到以下 LogCat 错误消息:

我还安装了一个自定义 rom(cyanogenmod 11 - 快照 M4),但我遇到了同样的问题。

当我启动应用程序时,我得到没有光栅化任何顶点的空白屏幕。到目前为止,清晰的颜色可以正常工作,因此 OpenGL 的基本功能可以正常工作。

在此处输入图像描述

可以肯定的是,我使用 GLES 1 和 GLES 2的 Google Developers 页面上的基本教程进行了尝试。两者都不起作用!以下是截图:

http://developer.android.com/training/graphics/opengl/index.html

该项目本身在我的旧Galaxy S1(也在 Cyanogenmod 上)上运行良好,但在我的 SGS3 上只显示空白屏幕。

Mali-400 MP4图形驱动程序/系统是否可能以不同方式解释 GL 命令?有没有与我的 SGS1中的蜂鸟GPU不同的调用方式?

有谁知道该怎么做?这是我的手机或eclipse的问题吗?或者这是正常的 - 只是我缺乏理解?我该如何解决这个问题?

------- 编辑:找到解决方案-------

好的,我发现了错误。谷歌文档显示了顶点着色器中矩阵的乘法“错误”:

这对我的旧 Galaxy S1 来说似乎不是问题,但不知何故 S3(或 Mali GPU)对此很挑剔。我将乘法顺序更改为:

它可以工作(也在 S1 上)。仍然不确定为什么 S1 在两个版本上都能正常工作,但这解决了问题。

谢谢你的帮助!

0 投票
2 回答
917 浏览

arm - ARM 上的 Opencl - 无法检索平台 ID

我在带有 ARM 处理器和 Mali GPU 的 linux 机器上远程运行 open cl。但它在 clGetPlatformIDs() 处给出类似“未知错误:无法检索平台 ID”的错误。

我都试过了

但对于两者,我都遇到了同样的错误。相同的代码在我的带有 AMD 显卡的个人 Windows 笔记本电脑上工作。

此错误的原因可能是什么?

0 投票
2 回答
568 浏览

opencl - ARM Mali - 如何同时在 CPU 和 GPU 之间共享只读内存对象?

我正在使用 ARM Mali T604 GPU。我使用 ALLOC_HOST_PTR 创建了一个内存对象。我想知道以下程序是否有效?我可以同时访问(只读)GPU 中的内存对象并映射(只读)CPU 中的相同内存对象吗?

第 1 步:取消映射内存对象(之前映射为 CL_MAP_READ_WRITE)

第 2 步:使用 CL_MAP_READ 将内存对象映射回(clEnqueueMapBuffer() 的参数)

第三步:CPU和GPU同时读取和处理数据(但我不会对这个内存对象做任何写操作)

第 4 步:取消映射内存对象

第 5 步:使用 CL_MAP_READ_WRITE 将内存对象映射到主机。

换句话说,我最终的目标是拥有一个 CPU 和 GPU 可以同时读取的内存对象。这在 Mali OpenCL 平台上可行吗?

0 投票
1 回答
691 浏览

memory-management - clEnqueueMap 耗时长,几乎等于 clEnqueuwritebuffer

基于 Mali 600 gpu 的 OpenCL 指南,应使用 CL_MEM_ALLOC_HOST_PTR 删除任何数据副本并提高性能。

今天,我在具有 Mali 604 gpu 的 Arndale 板上使用 CL_MEM_ALLOC_HOST_PTR 测试内存复制时间。我用 CL_MEM_ALLOC_HOST_PTR 和 clEnqueueWriteBuffer 进行了测试。我发现,如果我使用 CL_MEM_ALLOC_HOST_PTR,总体上我并没有得到太多的性能提升。因为 clEnqueueMap 函数花费的时间几乎与 clEnqueueWriteBuffer 相同。这个测试是在向量加法上完成的。

我是如何测试的:我没有使用 malloc 创建指针并将数据传输到设备,而是首先使用 CL_MEM_ALLOC_HOST_PTR 创建了一个缓冲区。然后我使用 OpenCL API 映射了这个缓冲区。这返回一个指针,我用数据填充了这个指针指向的内存。这种情况下的映射机制需要时间。映射时间几乎等于 clENqueuewritebuffer。因此,从这个示例中,我没有使用 CL_MEM_ALLOC_HOST_PTR 获得任何显着改进。

我的问题是,当我使用 CL_MEM_ALLOC_HOST_PTR 时,为什么映射时间这么长?

这是性能测量:元素大小:10000000,内核:向量加法,所有时间都以微秒为单位

正常读写缓冲时间 缓冲区创建时间 20 入队写入缓冲时间 108019

CL_MEM_ALLOC_HOST_PTR - 在分配的缓冲区时间内直接复制数据 用数据填充 clEnqueueMap 返回的指针 208009 映射时间 81346 取消映射时间 269

CL_MEM_ALLOC_HOST_PTR - 使用 memcpy 将数据从 malloc 指针复制到主机分配指针 时间映射时间 64134 取消映射时间 190 memcpy 时间(将数据从已创建的 malloc 指针复制到主机分配的固定指针)
56987

这是我用于 Host_alloc_ptr 的代码片段:

0 投票
1 回答
220 浏览

gpu - Mali-400MP GPU 的输出不对称且不准确

我有以下简单的片段着色器:

我正在使用帧缓冲区对象渲染到纹理。从帧缓冲区读回值时,我得到以下信息:

38, 38, 38, 38, 39, 39, 39, 39,38, 38, 38, 38, 39 等

0.15*255 = 38.25 所以我希望所有像素都能得到 38,我确实在我的桌面 GPU(英特尔 4000)和 Tegra 3 上得到了。如果有人能对这个问题有所了解,我会很高兴。由于三星 Galaxi s2、s3 和 s3 mini 中使用了 Mali-400MP,因此对于为移动设备开发 GPGPU 的任何人来说,这都是至关重要的。

0 投票
1 回答
4329 浏览

arm - 是否可以使用 Mali OpenCL SDK 在 ARM CPU (Cortex-a7) 上执行 OpenCL 代码?

Mali OpenCL SDK 允许在 Mali GPU 上执行 opencl 代码。
是否可以使用 Mali OpenCL SDK 在 ARM CPU (Cortex-a7) 上执行 OpenCL 代码?

0 投票
1 回答
170 浏览

arm - 对 cl_khr_fp64 扩展的 ARM OpenCL 支持

我在 Mali GPU 上使用 OpenCL。官方文档声明不支持双精度类型。有没有使用double的解决方法?ARM 是否打算在其 OpenCL 实施的下一个版本中支持它?

0 投票
1 回答
1388 浏览

arm - 马里 SDK 上的 Opencl

我有一块 Juno ARM 多功能板,它有 ARM CPU 和 Mali GPU。我们认为使用 OpenCL,这将在这样一个异构平台中有用。我认为我应该有一个用于 ARM 的 OpenCL SDK,使我能够为主机 ARM CPU 编写程序,这实际上会触发内核在 GPU 上运行。我的这个理解对吗?我正在寻找适用于 ARM 的 OpenCL SDK(为主机 ARM 编写程序)但没有找到。相反,我在 ARM 的网站上找到了适用于 Mali GPU 的 OpenCL SDK(http://malideveloper.arm.com/develop-for-mali/ sdks/mali-opencl-sdk/)。我也可以使用 Mali GPU 的 OpenCL SDK for ARM 吗?有人可以对此有所了解吗?

0 投票
1 回答
157 浏览

opengl-es - glCompileShader 的问题

我在 Windows 8 中编译着色器时遇到问题。当应用程序通过调用 glCompileShader 编译着色器时,调试器会引发以下编译错误:

'malisc' 未被识别为内部或外部命令,

显然它正在调用 Mali 离线编译器。这是第一次发生在我身上。我正在使用 OpenGLES 2.0 马里模拟器。

我的显卡是 GeForce GT 640,但我不知道这是否相关。为什么这个命令被调用?为什么它不让我编译我的着色器?我该如何解决这个问题?