I have port vincent(version0.83) to arm-linux platform. I got segment fault when I run program that uses more than one texture in JIT mode. The error is thrown from generated "RasterScanLine" function. Is vincent not supportting multi-texture in JIT mode or other problems cause the error?
in principle (i.e. on Windows Mobile) multi-texture JIT works. I could imagine that the behavior you are seeing is due to differences in the platforms/compilers. For example, the memory layout of the C data structures that get used by the JIT look different due to different alignment/padding rules.
Do you have a way to find out at what instruction exactly your program crashes? I hope you saw that in debug mode the library is generating assembly dumps of the generated scanline functions that are quite useful for addressing these kinds of problems.
I have found the error is from instruct <ldr pc, [pc,#160]> in generated RasterScanLine function. It load a invalid adress to pc. It's strange that everthing is ok when use only one texture on a mesh. What cause this problem and how to resolve it?
I found the direct reason of the error is that the size of generated function is big than 4096, but the operand in the instruct is 12bit max, so it can't reach the correct data segment.
Thanks! I was about to run into the same issue myself (I am currently implementing the full texture combine options), so I hope to get to it this week.
Log in to post a comment.