Who's Online |
25 user(s) are online ( 11 user(s) are browsing Forums)
Members: 1
Guests: 24
daveyw,
more...
|
|
|
|
Re: A1222 support in the SDK and problems
|
Posted on: Yesterday 16:00
#1
|
Not too shy to talk
|
I tried to link it with gcc 11.2 and 10.3, still receive allingnment error. Next I will try pointers workaround. @all, thanks for advice
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: A1222 support in the SDK and problems
|
|
Not too shy to talk
|
@salass00Quote: salass00 wrote: I encountered a similar problem when testing libcfsl code (SPE optimized versions of some standard string functions) in that the static LUTs (declared in assembler code here) would not always be aligned correctly when loaded even though .align was used in the code. I filed a bug report for this for elf.library but IIRC the verdict was that the issue was somewhere in the gcc linker script. Oh, it is not good news. As it concerns gcc v.6.4 it probably never be fixed. Are there some workaround how to align global variables? Or some advice ( a little bit for blondes ), how to fix this in assembler? In normal code I can replace long doubles with pointers to them, or simply allocate piece of memory and work in it, but in my case it is SPE-version of standardized benchmarks, so I don't want modify code logic, because results will be uncomparable with powerpc and others benchmark versions.
Edited by sailor on 2025/1/22 10:48:15
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: A1222 support in the SDK and problems
|
|
Not too shy to talk
|
I have still problem with SPE (-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=double) double variables alignment: If I declared double variables like globals, they are aligned allways to 4 Bytes ( I even used __aligned__ attribute). If I declared them inside main(), they are aligned correctly to 8 Bytes. SPE needs 8 byte alignment.
double T1 __attribute__ ((aligned (8)));
double T2 __attribute__ ((aligned (8)));
...
int main (int argc, char *argv[])
{
double T;
...
printf("Address T:%p\n", &T);
printf("Address T1:%p\n", &T1);
printf("Address T2:%p\n", &T2);
Output is:
Address T:0x6c361c68
Address T1:0x6bb4b63c
Address T2:0x6bb4b62c
T is 8 Byte alligned, T1 + T2 4 Byte aligned, __align__ not works here Program will crash ( generate error of type alignment), if T1 or T2 is used, T is OK. I tried -malign-power / -malign-natural and -mstrict-align / -mnostrict-align options. Any idea, how to solve it?
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: 2025-January-Gaming Competition-Super Star Blast
|
|
Not too shy to talk
|
@328gts Thank you, but shooters aren't my favorite. I like RPGs, adventures and grand strategy. And that's not really suited for tournaments. But I'd love to see you.
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: SpotLess debugger
|
|
Not too shy to talk
|
Now I am tried debuggging of stream SPE SIMD version.
Using of -O3 make debugging unstable. Use of -O0 -mregnames works fine. So Spotless ( and db101 ) can be used even on A1222+, with some limitations - for example embedded GPR 64-bit extension not visible.
But it is fine, basic algorithms should be debugged with this nice easy-to-use tools ( many thanks to authors ), and final check should be done with gdb.
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: SpotLess debugger
|
|
Not too shy to talk
|
@flash thanks, I forgot to regnames - good tip! And printf+ifdef is really good tool - I was using it in the last millenium, and using it still BTW, I found there is CodeWarrior Development Studio for Power Architecture from NXP. Even is the version for QorIQ CPU (=P1022). Did somebody test it? At least for disassembler. Because I am not found yet SPE capable disassembler.VdaPPC has AltiVec support, but not SPE. SPE and Altivec instruction opcodes partially overlapping, so with VdaPPC I can check if there is SPE-SIMD code, but not easilly read the code.
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: SpotLess debugger
|
|
Not too shy to talk
|
@elfpipe thank you for effort. Spotless in very nice piece of software an looks very easy to use. I will make more Spotless testing, what works and what no so good.
In meantime i found, that most problems was with debugging my -O3 and vectorized code: for example, if I place breakpoint to some function, and in heavily optimized code exist symbol with function name, but function itself not exists, because it was unrolled directly to main() body. So I will made more testing with -O0...
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: SpotLess debugger
|
|
Not too shy to talk
|
As I start playing with A1222+ and SPE + AltiVec SIMD programming, I am looking for debugger. On os4coding.net I found Spotless and Debug101. They look very nice, but worked only for small examples. My bigger project crashes. I found in this topics, that problem is with many different os4 kernels and libraries. So now I am using gdb... ( Big thanks @kas1e for gdb tutorial ! )
Please, are there some advice what kernel versions I should have to use Spotless? Or at least how can I use it without required libraries.
And second question: Which dissassemler do you use ( ideally I need some with AltiVec and SPE extensions) Thaks for any advice..
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: Best 1/2 Height GPU for Amiga A1222+
|
|
Not too shy to talk
|
@interrogativeQuote: interrogative wrote:@sailor Does linux not have driver support for Polaris/RX cards? Linux x86 and Powerpc Little endian does, linux Powerpc Big endian not. Our CPUs are Big endian... Main problem is, that two components needed to support more modern radeons not exists, or are only in alfa-test stage: kernel amdgpu DRM and Mesa radeonsi driver. More in this article: HW compatibility - Czech languageHW compatibility French language
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: Airprint betatesting
|
Posted on: 1/13 18:53
#10
|
Not too shy to talk
|
@mcleppa Thank you very much for effort. I have similar isuue like pvanni and Petrol - stucked with this: Find a printer ( HP LaserJet MFP M130fn ), and when press "Add Printer" nothing happen. In one case I receive error message "Could not retrieve printerattributes", but in most cases It will do anything and cannot close window. Printer has all services enabled, except FTP: Are there possibility to enter printer attributes manually? In some .conf file for example? P.S. tested on A1222+, X1000 and Sam460 - same symptoms. Probably it connected with printer response.
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: Quake Darkplaces and NovaBridge
|
Posted on: 1/13 18:16
#11
|
Not too shy to talk
|
@HunoPPC Thank you! Works nice on my X1000, EGL with default settings on initial screen 59 FPS. Tested on A1222, accordint to this advice - you need saved game from other computer. SDL crashes on A1222, but EGL and MiniGL works. 10 FPS on initial scene.
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: gcc autovectorization feature - Altivec
|
Posted on: 1/13 13:38
#12
|
Not too shy to talk
|
@balaton yes, I have to check assembler, if really Copy uses FPU registers and Scale+Add+Triad AltiVec.
I want to learn howto write code which should be easily auto-vectorized by gcc - I am too lazy to made vector code by hand..
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: copy 54.11 fails to indicate non-extant file/folder and returns successfully
|
Posted on: 1/13 13:12
#13
|
Not too shy to talk
|
In normal situation - for example with OS which is continuously developed or free for 3rd-party improvement - we not need such command replacements. But situation is like it is. Thus makes alternatives without license-lock is one of the ways howto continue development. From this point of view I think that amigakit makes good job here.
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: Best 1/2 Height GPU for Amiga A1222+
|
Posted on: 1/12 20:31
#14
|
Not too shy to talk
|
@AmigaSociety To have maximum from graphics drivers ( Warp3D Nova, Nova Bridge, Video acceleration ) you need: or Southern Islands - less powerful, capable of playing H.264 HD video, you can also use linux with framebuffer. or this R7 cards - has the same graphics chip as Southern Islands above, only different marketing name. or Polaris cards - are more powerful, capable of playing H.264 fullHD and probably 4k ( I am not tested, but there was some video ). Not to say that Polaris have H.265 decoder ( not works with today drivers, but maybe in future ). This is card for you if you not need linux on A1222+. If you open cards from the list, there is in the bottom alternatives from different producers. From that list check what is low-profile. Quick look: Southern Island: AFOX HD 7850 Low Profile - very rare, many HD7750, R7 240, R7 250 low-profile cards. Polaris: MSI RX 560 Low Profile - very rare, many RX550 low-profile cards. From my poit of view for AmigaOS only ( not linux ) is the best choice RX550. P.S. I am not tested any of low-profile cards, but HD7750 and RX560 2slot+full-profile works for me. Maybe somebody advice you exact type of tested low-profile RX550.
Edited by sailor on 2025/1/13 13:41:14 Edited by sailor on 2025/1/13 13:43:49
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: Poor network performance on Sam440ep
|
|
Not too shy to talk
|
@xe1huku I don't know if Amiga Explorer use smb or some other protocol. Or some private. But basically, as Rigo said, transfers are slowed by huge protocol on top of TCP / IP - like Samba. Speed of pure TCP/IP transfer on my Sam440ep 666MHz is: 11130 kB/s = 87 Mbps ( measured by TCPSpeed against fast Windows workstation ) Only solution is to try other protocol. FTP could be faster. If you will wait week or two, I will test transfer with smbfs on my Sam440. Just now part of my computers and monitors hidden behind Bethelem
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
gcc autovectorization feature - Altivec
|
Posted on: 1/11 19:27
#16
|
Not too shy to talk
|
I just now played with auto-vectorization feature of gcc: There is result of standart powerpc stream:
Work:Benchmark/stream-5.10-AOS/stream
...
-------------------------------------------------------------
Function Best Rate MB/s Avg time Min time Max time
Copy: 2666.8 0.060642 0.059998 0.064029
Scale: 4103.0 0.039175 0.038996 0.039543
Add: 3870.2 0.065242 0.062012 0.083547
Triad: 3901.1 0.061864 0.061521 0.062810
-------------------------------------------------------------
Solution Validates: avg error less than 1.000000e-13 on all three arrays
Than I copmpiled mu stream.c code with: gcc -DSTREAM_TYPE=float -DTUNED -mcpu=G4 -maltivec -mabi=altivec -O3 -ftree-vectorize -fopt-info-vec-optimized stream.c -o stream-float-tuned-altivec-g4Result of stream-float-tuned-altivec-g4:
Work:Benchmark/stream-5.10-AOS/stream-float-tuned-altivec-g4
...
-------------------------------------------------------------
Function Best Rate MB/s Avg time Min time Max time
Copy: 2642.3 0.031379 0.030277 0.039397
Scale: 4866.5 0.017653 0.016439 0.024704
Add: 5440.7 0.022771 0.022056 0.025303
Triad: 5414.9 0.022900 0.022161 0.028060
-------------------------------------------------------------
Solution Validates: avg error less than 1.000000e-06 on all three arrays
-------------------------------------------------------------
Result is ( also confirmed with -fopt-info-vec-optimized ) that Scale, Add and Triad functions are optimized - uses altivec, Copy remains unoptimized. Source code of functions is here (#pragma omp simd is irelevant in this example):
#ifdef TUNED
/* stubs for "tuned" versions of the kernels */
/* --- Modified by sailor -------------------*/
void tuned_STREAM_Copy()
{
ssize_t j;
#pragma omp simd
for (j=0; j<STREAM_ARRAY_SIZE; j++)
c[j] = a[j];
}
void tuned_STREAM_Scale(STREAM_TYPE scalar)
{
ssize_t j;
#pragma omp simd
for (j=0; j<STREAM_ARRAY_SIZE; j++)
b[j] = scalar*c[j];
}
void tuned_STREAM_Add()
{
ssize_t j;
#pragma omp simd
for (j=0; j<STREAM_ARRAY_SIZE; j++)
c[j] = a[j]+b[j];
}
void tuned_STREAM_Triad(STREAM_TYPE scalar)
{
ssize_t j;
#pragma omp simd
for (j=0; j<STREAM_ARRAY_SIZE; j++)
a[j] = b[j]+scalar*c[j];
}
/* end of stubs for the "tuned" versions of the kernels */
Do somebody know, why tuned_STREAM_Copy() was not optimized? Of course, I can modify function to something like c[j] = one*a[j]; P.S. all with gcc 11.2.0, compilled natively on A1222+, tested on X1000
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: A1222 support in the SDK and problems
|
Posted on: 1/11 14:13
#17
|
Not too shy to talk
|
@doozQuote: dooz wrote:@sailor ... I tested all this in A1222 and results are great in some games, some not (too slow to play). I even amanged to get Quake Darkplaces working with more than 20 fps under LTE (Quake uses a lot FPU code). Quake darkplaces must be started with benchmark switch (otherwise it doesnt work, also game must be started from previous saved game position - if you have one from other Amiga system):
stack 9000000 darkplaces-sdl -benchmark -widht 640 -height 480
Lots of things to investigate and play around with A1222 Real SPE optimized games will work excellent because SPE FPU performance is fast. This is when FPU is used in games - then I guess the real thing is to transfer all the calculations on the graphic card...not using much of FPU.
Here I have A1222 with Radeon RX 580. It works great.
-dooz Please, have somebody share Darkplaces save game? Ideally the same beginning. I want to try it on A1222, like @dooz adviced. Unfortunatelly, it do not run on my X1000 to produce save game.
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: 2025-January-Gaming Competition-Super Star Blast
|
Posted on: 1/11 14:06
#18
|
Not too shy to talk
|
Great race!
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: A1222Plus has a new home
|
|
Not too shy to talk
|
@eliyahu @DetordiggeiQuote: Blender problem is similar SObjs mess like with Wesnoth.Latest Blender 248.7 from os4depot.net NOT works OOTB for me. It freezes. I checked which .so are used ( thanks @Andy )
readelf -d bldyn
Dynamic section at offset 0xb007cc contains 38 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libbffmpeg.so]
0x00000001 (NEEDED) Shared library: [libpthread.so]
0x00000001 (NEEDED) Shared library: [libz.so.1]
0x00000001 (NEEDED) Shared library: [libbz2.so.1.0]
0x00000001 (NEEDED) Shared library: [libexpat.so]
0x00000001 (NEEDED) Shared library: [libfreetype.so]
0x00000001 (NEEDED) Shared library: [libjpeg.so]
0x00000001 (NEEDED) Shared library: [libpng12.so]
0x00000001 (NEEDED) Shared library: [libdl.so]
0x00000001 (NEEDED) Shared library: [libSDL-1.2.so]
0x00000001 (NEEDED) Shared library: [libIlmImf.so]
0x00000001 (NEEDED) Shared library: [libHalf.so]
0x00000001 (NEEDED) Shared library: [libIlmThread.so]
0x00000001 (NEEDED) Shared library: [libIex.so]
0x00000001 (NEEDED) Shared library: [libImath.so]
0x00000001 (NEEDED) Shared library: [libopenal.so]
0x00000001 (NEEDED) Shared library: [libpython25.so]
0x00000001 (NEEDED) Shared library: [libstdc++.so]
0x00000001 (NEEDED) Shared library: [libgcc.so]
0x00000001 (NEEDED) Shared library: [libc.so]
- some of .so are in blender/sobjs directory - libbz2.so from os4depot should be copied to blender/sobjs - all other missing .so I copied from X1000 sys:sobjs Unfortunatelly it still freezed. - I copy all .so from list above from X1000 sys:sobjs to blender/sobjs to be sure to have original older versions. Still freezes. Finally I copy all X1000 sys:sobjs to blender/sobjs - not only those from readelf list, but all I have in X1000 After that it not freeze, but has error: cannot resolve symbol in Sys:SObjs/libgcc.so. Blender opens this libgcc.so from sys:sobj, even if it had in blender/sobjs/libgcc.so!! Finally i backup Sys:SObjs/libgcc.so, and copied older libgcc.so from blender/sobjs to sys/sobjs. And it works!!! But - please, how I can check which from other .so are needed? It should be some which is not in the readelf list. Is possible, that some .so depends on some other.so? I dont want have a pack of .so in blender/sobjs directory...
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
Re: RadeonHD V.5 driver
|
|
Not too shy to talk
|
@Hans thanks!
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|