标签: ati

OpenCL/CPU。测试OpenCL框架是否可用

我正在开发一个混合 OpenCL 应用程序,它必须在运行时决定是否使用 GPU 实现。

是否有跨平台(即对于 intel、nvidia 和 ati)的方式来确定运行应用程序的计算机是否具有 opencl 框架支持,而不会导致应用程序崩溃?一开始我只是为 Windows 平台开发。

#include <CL/cl.h>
#include <iostream>

int main() 
{
    std::cout << "Start cross paltform testing" << std::endl;
    cl_platform_id platform[1];
    clGetPlatformIDs(1, platform, 0);
    std::cout << "End cross paltform testing" << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

目前我收到错误:

The application was unable to start correctly (0xc000007b)...
Run Code Online (Sandbox Code Playgroud)

如果我尝试在我上面描述的情况下启动它。

注意:实际上,至少对于 nvidia 来说应该是可能的。我已经在这个场景中测试了来自 nvidia GPU SDK 的 oclDeviceQuery 并且它工作正常。只需将 Windows/System 文件夹中的“opencl.dll”复制到应用程序文件夹中。我不知道为什么我的应用程序在相同的情况下崩溃。

先感谢您。

nvidia ati opencl hybrid

5
推荐指数
1
解决办法
2269
查看次数

Valgrind在ATI上运行opengl程序时报告了很多错误 - 我应该担心吗?

我有一个非常复杂的OpenGL应用程序在带有ATI图形芯片的嵌入式设备上运行,运行RT linux.应用程序的部分通过单元测试进行测试.它们都通过,没有报告内存泄漏或无效访问.但是,应用程序有一些怪癖,有些事情表现不佳.

今天我尝试使用valgrind运行这个应用程序,在初始化期间我看到一些无效的内存读/写,所有这些都与ATI驱动程序有关:

==14347== Invalid read of size 8
==14347==    at 0x67C3868: ??? (in /usr/lib/catalyst/libGL.so.1.2)
==14347==  Address 0x8f6b398 is 208 bytes inside a block of size 212 alloc'd
==14347==    at 0x400AE44: malloc (vg_replace_malloc.c:270)
==14347==    by 0x6762701: ??? (in /usr/lib/catalyst/libGL.so.1.2)
==14347==    by 0x8F6B05F: ???
==14347== 
==14347== Syscall param ioctl(generic) points to uninitialised byte(s)
==14347==    at 0x8A57B9: ioctl (in /lib/libc-2.14.1.so)
==14347==    by 0x6A0E345: ukiCreateContext (in /usr/lib/catalyst/libatiuki.so.1.0)
==14347==    by 0xA9D4570: ??? (in /usr/lib/dri/fglrx_dri.so)
==14347==  Address 0xbeceacb4 is on thread 1's stack
==14347== 
==14347== …
Run Code Online (Sandbox Code Playgroud)

c++ linux opengl valgrind ati

5
推荐指数
1
解决办法
543
查看次数

GLSL着色器不适用于AMD/ATI,但适用于NVIDIA

我真的很奇怪,我pin down现在几天都不能.我正在制作一个简单的每顶点照明,它可以正常工作Nvidia,但不会渲染任何带灯光的阴影AMD/ATI.我追踪了与属性有关的问题 - 特别是颜色属性.
这是我的顶点着色器:

#version 140
uniform mat4 modelViewProjectionMatrix;
in vec3 in_Position;                 // (x,y,z)
in vec4 in_Color;                    // (r,g,b,a)
in vec2 in_TextureCoord;             // (u,v)

out vec2 v_TextureCoord;
out vec4 v_Color;

uniform bool en_ColorEnabled;
uniform bool en_LightingEnabled;

void main()
{
   if (en_LightingEnabled == true){
      v_Color = vec4(0.0,1.0,0.0,1.0);
   }else{
      if (en_ColorEnabled == true){
         v_Color = in_Color;
      }else{ 
         v_Color = vec4(0.0,0.0,1.0,1.0);
      }
   }
   gl_Position = modelViewProjectionMatrix * vec4( in_Position.xyz, 1.0);

   v_TextureCoord = in_TextureCoord;
}
Run Code Online (Sandbox Code Playgroud)

这是像素着色器:

#version …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glsl ati

5
推荐指数
1
解决办法
2037
查看次数

Nvidia GPU上的OpenCL ATI Stream SDK

我可以通过安装ATI Stream SDK在Nvidia GPU上编码我的OpenCL应用程序(因为它可以让我加速我的CPU,Nvidia编程SDK也不会)

gpu nvidia ati opencl

2
推荐指数
1
解决办法
1544
查看次数

ATI Radeon HD 5770 GPU OpenGL 4.1支持?

我在2012 Mac Pro上安装了ATI Radeon HD 5770 GPU.

当我在我的程序中运行以下代码时:

    std::cout << glGetString(GL_RENDERER) << std::endl;
    std::cout << glGetString(GL_VENDOR) << std::endl;
    std::cout << glGetString(GL_VERSION) << std::endl;
    std::cout << glGetString(GL_SHADING_LANGUAGE_VERSION) << std::endl;
Run Code Online (Sandbox Code Playgroud)

我得到的输出如下:

    ATI Radeon HD 5770 OpenGL Engine
    ATI Technologies Inc.
    2.1 ATI-1.24.35
    1.20
Run Code Online (Sandbox Code Playgroud)

但是使用OpenGL Extensions Viewer我得到以下内容 在此输入图像描述

有没有办法可以使用4.1?为什么它一直告诉我版本是2.1?

opengl gpu glsl ati

1
推荐指数
1
解决办法
1159
查看次数

标签 统计

ati ×5

opengl ×3

c++ ×2

glsl ×2

gpu ×2

nvidia ×2

opencl ×2

hybrid ×1

linux ×1

valgrind ×1