小编Pio*_*him的帖子

SIMD和动态内存分配

可能重复:
SSE,内在函数和对齐

我是SIMD编程的新手,所以如果我问一个明显的问题,请原谅.

我正在进行一些实验,并且想要在动态分配的结构中存储SIMD值.

这是代码:

struct SimdTest
{
    __m128      m_simdVal;

    void setZero()
    {
        __m128 tmp = _mm_setzero_ps(); 
        m_simdVal = tmp; // <<--- CRASH ---
    }
};

TEST( Plane, dynamicallyAllocatedPlane )
{
    SimdTest* test = new SimdTest();

    test->setZero();

    delete test;
}
Run Code Online (Sandbox Code Playgroud)

当执行标记为CRASH注释的方法时,代码崩溃并出现以下异常:

Unhandled exception at 0x775315de in test-core.exe: 0xC0000005: Access violation reading location 0x00000000
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么赋值操作会中断,以及如何动态分配包含SIMD的对象以使它们正常工作?

我需要补充一点,如果我静态实例化一个SimdTest对象并调用setZero方法,一切正常.

谢谢,Paksas

c++ memory-management sse simd

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

Android上的glDrawElements极慢(HTC Wildfire)

我在Android手机上测试OpenGL性能(确切地说就是HTC Wildfire),我遇到了一个奇怪的事情 - 当我尝试绘制一个像屏幕大小(320 x 480)的纹理索引矩形时,我可以得到一个帧速率高达40 fps! - 这只是在我使用32x32纹理时.

如果我将纹理大小增加到256x256,性能下降到35帧.

我的问题是 - 所有这些Android游戏如何能够顺利运行并且仍然充满了酷炫的图形.

android opengl-es

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

ctype结构中定义的ctypes字符串不起作用

我在创建一个带有字符串的ctypes结构并用一个有意义的值初始化它时遇到了一些问题.

这是我的结构:

class MyStruct( Structure ):
    _fields_ = [ ("someString", c_char_p) ]
Run Code Online (Sandbox Code Playgroud)

这是我试图初始化它

obj = MyStruct( "something" )
Run Code Online (Sandbox Code Playgroud)

两种尝试都失败了.这是错误消息:

obj_1 = MyStruct("something")TypeError:期望的字符串或整数地址而不是str实例

如果我使用*c_char_p*operator obj = MyStruct(c_char_p("something"))也会发生同样的事情

我必须提到这个代码是在Blender 2.63a环境中执行的.

任何人都可以帮我解决这个问题吗?

python string ctypes

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

标签 统计

android ×1

c++ ×1

ctypes ×1

memory-management ×1

opengl-es ×1

python ×1

simd ×1

sse ×1

string ×1