Hi.
While trying to compile the ‘Iridescent’ tutorial, the
PVRUniSCo_SGX53x FragShader.fsh FragShader.fsc -f
command reports success while producing nothing.
See below for the command I’m typing, the first part of the makefile output, and an strace of the misbehaving command - the strace makes it look like it’s not even trying to open the fsc file to write it.
If I’m doing the wrong thing, trying to compile like this - where should I be looking for the README or INSTALL?
Thanks.
Tim
uname -a
Linux dt-000886 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:24 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
cd /home/tim/src/OGLES/SDKPackage_OGLES2_Linux/TrainingCourse/23_Iridescence/OGLES2/Build/LinuxGeneric
make --file=Makefile PLATFORM=LinuxX86 X11BUILD=1 X11ROOT=/usr SDKDIR=/home/tim/src/OGLES/SDKPackage_OGLES2_Linux all
with this output:
***********************************************
Name: OGLES2Iridescence
PWD: /home/tim/src/OGLES/SDKPackage_OGLES2_Linux/TrainingCourse/23_Iridescence/OGLES2/Build/LinuxGeneric
Binary path: /home/tim/src/OGLES/SDKPackage_OGLES2_Linux/TrainingCourse/23_Iridescence/OGLES2/Build/LinuxGeneric/…/LinuxX86/ReleaseX11
Library path: /home/tim/src/OGLES/SDKPackage_OGLES2_Linux/Builds/OGLES2/LinuxX86/Lib
WS: X11
*****************************************************
+t+ Making content.mak
make[1]: Entering directory /home/tim/src/OGLES/SDKPackage_OGLES2_Linux/TrainingCourse/23_Iridescence/OGLES2'<br /> <br />/home/tim/src/OGLES/SDKPackage_OGLES2_Linux/Utilities/PVRUniSCo/OGLES/Linux_x86_32/PVRUniSCo_SGX53x FragShader.fsh FragShader.fsc -f<br /> <br />Success.<br /> <br />/home/tim/src/OGLES/SDKPackage_OGLES2_Linux/Utilities/Filewrap/Linux_x86_32/Filewrap -s -o Content/FragShader.cpp FragShader.fsh<br /> <br />Could not open FragShader.fsc for reading<br /> <br />make[1]: [Content/FragShader.cpp] Error 1 (ignored)<br /> <br />/home/tim/src/OGLES/SDKPackage_OGLES2_Linux/Utilities/Filewrap/Linux_x86_32/Filewrap -oa Content/FragShader.cpp FragShader.fsc<br /> <br />Could not open VertShader.vsc for reading<br /> <br />make[1]: [Content/VertShader.cpp] Error 1 (ignored)<br /> <br />/home/tim/src/OGLES/SDKPackage_OGLES2_Linux/Utilities/PVRUniSCo/OGLES/Linux_x86_32/PVRUniSCo_SGX53x VertShader.vsh VertShader.vsc -v<br /> <br />Success.<br /> <br />/home/tim/src/OGLES/SDKPackage_OGLES2_Linux/Utilities/Filewrap/Linux_x86_32/Filewrap -s -o Content/VertShader.cpp VertShader.vsh<br /> <br />/home/tim/src/OGLES/SDKPackage_OGLES2_Linux/Utilities/Filewrap/Linux_x86_32/Filewrap -oa Content/VertShader.cpp VertShader.vsc<br /> <br />make[1]: Leaving directory
/home/tim/src/OGLES/SDKPackage_OGLES2_Linux/TrainingCourse/23_Iridescence/OGLES2’
… continues
and this strace from the command-line:
[11:57:42] ~/src/OGLES/SDKPackage_OGLES2_Linux/TrainingCourse/23_Iridescence/OGLES2 $ strace /home/tim/src/OGLES/SDKPackage_OGLES2_Linux/Utilities/PVRUniSCo/OGLES/Linux_x86_32/PVRUniSCo_SGX53x FragShader.fsh FragShader.fsc -f
execve("/home/tim/src/OGLES/SDKPackage_OGLES2_Linux/Utilities/PVRUniSCo/OGLES/Linux_x86_32/PVRUniSCo_SGX53x", ["/home/tim/src/OGLES/SDKPackage_O"…, “FragShader.fsh”, “FragShader.fsc”, “-f”], [/ 44 vars */]) = 0
[ Process PID=18940 runs in 32 bit mode. ]
brk(0) = 0x977d000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff772d000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=126799, …}) = 0
mmap2(NULL, 126799, PROT_READ, MAP_PRIVATE, 3, 0) = 0xfffffffff770e000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib32/libm.so.6", O_RDONLY) = 3
read(3, “177ELF1113312604004”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=149392, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff770d000
mmap2(NULL, 151680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xfffffffff76e7000
mmap2(0xf770b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23) = 0xfffffffff770b000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib32/libdl.so.2", O_RDONLY) = 3
read(3, “177ELF111331@n004”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9736, …}) = 0
mmap2(NULL, 12408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xfffffffff76e3000
mmap2(0xf76e5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xfffffffff76e5000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib32/libstdc++.so.6", O_RDONLY) = 3
read(3, “177ELF111331340B4004”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=930044, …}) = 0
mmap2(NULL, 959532, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xfffffffff75f8000
mmap2(0xf76d7000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xde) = 0xfffffffff76d7000
mmap2(0xf76dc000, 25644, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xfffffffff76dc000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib32/libgcc_s.so.1", O_RDONLY) = 3
read(3, “177ELF111331P37004”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=108040, …}) = 0
mmap2(NULL, 111148, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xfffffffff75dc000
mmap2(0xf75f6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19) = 0xfffffffff75f6000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib32/libc.so.6", O_RDONLY) = 3
read(3, “177ELF111331220o1004”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1417796, …}) = 0
mmap2(NULL, 1427976, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xfffffffff747f000
mprotect(0xf75d5000, 4096, PROT_NONE) = 0
mmap2(0xf75d6000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x156) = 0xfffffffff75d6000
mmap2(0xf75d9000, 10760, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xfffffffff75d9000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff747e000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff747d000
set_thread_area(0xff931228) = 0
mprotect(0xf75d6000, 8192, PROT_READ) = 0
mprotect(0xf75f6000, 4096, PROT_READ) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff747c000
mprotect(0xf76d7000, 16384, PROT_READ) = 0
mprotect(0xf76e5000, 4096, PROT_READ) = 0
mprotect(0xf770b000, 4096, PROT_READ) = 0
mprotect(0xf774b000, 4096, PROT_READ) = 0
munmap(0xf770e000, 126799) = 0
brk(0) = 0x977d000
brk(0x979e000) = 0x979e000
open(“FragShader.fsh”, O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0755, st_size=730, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff772c000
fstat64(3, {st_mode=S_IFREG|0755, st_size=730, …}) = 0
_llseek(3, 0, [0], SEEK_SET) = 0
read(3, “uniform sampler2D sThicknessTex”…, 730) = 730
_llseek(3, 730, [730], SEEK_SET) = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 14), …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff772b000
write(1, “Success.n”, 9Success.
) = 9
exit_group(0) = ?
So a partial solution:
1. I found the root-level PDF file and the references in section 3 to Linux and lack of 64 bit support. Oh well. Maybe a 32bit chroot will work.
2. It still seems funny for the utility to report success but produce nothing.
Tim
Hi,
1. We do not have full 64bit SDK yet. You can run some of utilities in 32 bit mode on you linux but, PVRVFRame (OGLESPC emulation) won't run that way. You can download PVRVFRame utility and inside you can find 64bit port of PVRVFrame (eg. PVRVFrame/OGLES2/Linux_x86_64) . Moreover in SDKPackage/Builds/OGLESX/LinuxX86/make_platform.mak you should remove -m32 flag . Copy the libraries to
SDKPackage/Builds/OGLESX/LinuxX86/Lib and then attempt to build the training course. We will have full support for 64bit Linux by the time of our next release.
2. As for PVRUniSCo , we no longer rely on binary shaders and compiler is to produce estimation of performance (it does not produce usc file anymore). So to conclude although it look confusing it fine. There is an error as result of missing usc file that is ignored and process carries on.
Regards,