

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
10 messages in net.java.dev.jna.usersRe: [jna-users] setting structure ali...| From | Sent On | Attachments |
|---|---|---|
| Rui Caridade | Dec 8, 2008 6:07 pm | |
| Timothy Wall | Dec 8, 2008 7:18 pm | |
| Rui Caridade | Dec 8, 2008 8:26 pm | |
| Timothy Wall | Dec 8, 2008 8:54 pm | |
| Rui Caridade | Dec 8, 2008 9:05 pm | |
| Rui Caridade | Dec 10, 2008 5:11 pm | .log |
| Timothy Wall | Dec 10, 2008 6:05 pm | |
| Rui Caridade | Dec 10, 2008 6:13 pm | |
| Rui Caridade | Dec 11, 2008 2:50 am | |
| Timothy Wall | Dec 11, 2008 5:24 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [jna-users] setting structure alignment | Actions... |
|---|---|---|
| From: | Rui Caridade (waih...@yahoo.com) | |
| Date: | Dec 10, 2008 5:11:57 pm | |
| List: | net.java.dev.jna.users | |
| Attachments: | ||
Hello.
I've been testing the bindings and sometimes it crashes the vm :|
The err log goes at attachment.
The crash is more frequent ,read happens most of the time if i call the lib for
example as follows
SIMDx86Vector vector = null;
vector = SIMDx86Vector.allocate();
vector.x = 2.0f;
vector.y = 2.0f;
vector.z = 2.0f;
System.out.println("X " + vector.x + " Y " + vector.y + " Z " +
vector.z);
simd.SIMDx86Vector_Scale(vector,scale);
//System.out.println(vector.toString());
System.out.println("X " + vector.x + " Y " + vector.y + " Z " +
vector.z);
If i don't comment vector.toString() i get
X 2.0 Y 2.0 Z 2.0 SIMDx86Vector(allocated@0x9a53bc8 (12 bytes)) { float x@0=4.0 float y@4=4.0 float z@8=4.0 } memory dump [00008040] [00008040] [00008040] X 4.0 Y 4.0 Z 4.0
Can anyone please point me to what i'm doing wrong? Thank you in advance
________________________________ From: Rui Caridade <waih...@yahoo.com> To: use...@jna.dev.java.net Sent: Tuesday, December 9, 2008 5:05:55 AM Subject: Re: [jna-users] setting structure alignment
Well i could have couldn't i :| It would have been simpler....
________________________________ From: Timothy Wall <twal...@dev.java.net> To: use...@jna.dev.java.net Sent: Tuesday, December 9, 2008 4:55:08 AM Subject: Re: [jna-users] setting structure alignment
Maybe I'm missing something, but why not just put the "align" call into the
SIMDx86Vector ctor?
On Dec 8, 2008, at 11:27 PM, Rui Caridade wrote:
Thank you :) I've tested a bit more and it all seems to work :) Jna is great :) For correctness sake, this was what i did:
protected static void setAlignment(Structure c ){ ((Memory)(c.getPointer())).align(4); }
and then for instance on Vector
SIMDx86Vector v =(SIMDx86Vector) Structure.newInstance(SIMDx86Vector.class); SIMDx86Factory.setAlignment(v); return v;
Is this correct way to do it ? :) Thank you again for your fast and unvaluable help From: Timothy Wall <twal...@dev.java.net> To: use...@jna.dev.java.net Sent: Tuesday, December 9, 2008 3:18:39 AM Subject: Re: [jna-users] setting structure alignment
You'll need to explicitly ensure that the memory allocated for the structure is
aligned, using Memory.align(4).
On Dec 8, 2008, at 9:08 PM, Rui Caridade wrote:
Hello.
I'm currently working on creating bindings for libSIMDx86
(http://simdx86.sourceforge.net/).
Some structures are aligned to the 16th byte for instance
typedef struct SIMDx86Vector
{
float x, y, z;
float __SIMD_pad__; /* Padding to 16th byte for SIMD operations (3DNow!/SSE)
*/
} SIMDx86Vector ALIGNED;
Where aligned is
#if defined(__GNUC__) #define ALIGNED __attribute__(( aligned(16) )) #elif defined(_MSC_VER) #define ALIGNED __declspec(align(16)) #endif
My implementation is as follows
public class SIMDx86Vector extends Structure {
float x, y, z;
float __SIMD_pad__; /* Padding to 16th byte for SIMD operations (3DNow!/SSE)
*/
public SIMDx86Vector allocate(){ return (SIMDx86Vector) Structure.newInstance(this.getClass()); } }
My question is do i need to do anything more on the Java side? All the best and thanks in advance








.log