HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > [iOS, Android] Нубские вопросы от XaeroX
Есть ли у нас мобильные разработчики?
Страницы (5): « 1 [2] 3 4 5 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4133

Рейтинг



Цитата:
FiEctro писал:
учитывая что на обычном ксаше спонза нехило так проседает, с шейдерами там вообще 1 фпс будет

Неожиданный вывод.

Сообщить модератору | | IP: Записан
Сообщение: 172611

Старое сообщение 15-05-2018 15:15
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Так что, про iOS никто ничего не знает?

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 172612

Старое сообщение 15-05-2018 16:27
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Очередные андроедопроблемы.
Решил настроить кросс-компиляцию и запуск под Windows 7.
Компиляция работает, а вот юнит-тесты на эмуляторе не стартуют - ехешник валится с "Illegal instruction".
Под линуксом я с таким не сталкивался.
Что это может быть? Бага эмулятора под виндой, или я что-то не так настраиваю?

Цитата:
INFO: Running unit test bundles in "android\jni"...
INFO: Pushing content to device...
libdedicated.so: 1 file pushed. 5.4 MB/s (1591228 bytes in 0.282s)
libfilesystem.so: 1 file pushed. 6.8 MB/s (87908 bytes in 0.012s)
libgame.so: 1 file pushed. 6.0 MB/s (1982808 bytes in 0.317s)
libogg.so: 1 file pushed. 1.8 MB/s (20804 bytes in 0.011s)
libphysics.so: 1 file pushed. 7.6 MB/s (770412 bytes in 0.096s)
libplatform.so: 1 file pushed. 4.1 MB/s (48548 bytes in 0.011s)
libref_gles1.so: 1 file pushed. 5.5 MB/s (655044 bytes in 0.114s)
libref_null.so: 1 file pushed. 5.8 MB/s (626236 bytes in 0.103s)
libvgui.so: 1 file pushed. 5.7 MB/s (418140 bytes in 0.069s)
libvmdlib.so: 1 file pushed. 1.1 MB/s (6540 bytes in 0.006s)
libvorbis.so: 1 file pushed. 5.5 MB/s (175448 bytes in 0.030s)
libvorbisenc.so: 1 file pushed. 7.8 MB/s (989212 bytes in 0.122s)
libvorbisfile.so: 1 file pushed. 3.1 MB/s (35052 bytes in 0.011s)
libvsound.so: 1 file pushed. 5.2 MB/s (169588 bytes in 0.031s)
libvstdlib.so: 1 file pushed. 3.1 MB/s (79664 bytes in 0.024s)
libvtxlib.so: 1 file pushed. 2.5 MB/s (25272 bytes in 0.010s)
INFO: Running: "base_unittest"...
base_unittest: 1 file pushed. 7.8 MB/s (964288 bytes in 0.118s)
Illegal instruction
ERROR: Unit tests in bundle "base_unittest" failed!
INFO: Running: "platform_unittest"...
platform_unittest: 1 file pushed. 5.2 MB/s (850872 bytes in 0.155s)
Illegal instruction
ERROR: Unit tests in bundle "platform_unittest" failed!
INFO: Running: "vstdlib_unittest"...
vstdlib_unittest: 1 file pushed. 7.2 MB/s (1163836 bytes in 0.154s)
Illegal instruction
ERROR: Unit tests in bundle "vstdlib_unittest" failed!
INFO: Running: "filesystem_unittest"...
filesystem_unittest: 1 file pushed. 8.6 MB/s (1054080 bytes in 0.117s)
Illegal instruction
ERROR: Unit tests in bundle "filesystem_unittest" failed!
INFO: Running: "vtxlib_unittest"...
vtxlib_unittest: 1 file pushed. 7.4 MB/s (808280 bytes in 0.105s)
Illegal instruction
ERROR: Unit tests in bundle "vtxlib_unittest" failed!
INFO: Running: "vmdlib_unittest"...
vmdlib_unittest: 1 file pushed. 7.9 MB/s (788292 bytes in 0.096s)
Illegal instruction
ERROR: Unit tests in bundle "vmdlib_unittest" failed!
INFO: Running: "scriptsys_unittest"...
scriptsys_unittest: 1 file pushed. 8.7 MB/s (2689528 bytes in 0.294s)
Illegal instruction
ERROR: Unit tests in bundle "scriptsys_unittest" failed!
INFO: Running: "physics_unittest"...
physics_unittest: 1 file pushed. 8.4 MB/s (1822788 bytes in 0.206s)
Illegal instruction
ERROR: Unit tests in bundle "physics_unittest" failed!
INFO: Running: "renderer_unittest"...
renderer_unittest: 1 file pushed. 7.9 MB/s (1175064 bytes in 0.142s)
Illegal instruction
ERROR: Unit tests in bundle "renderer_unittest" failed!
All done - 9 test bundle(s) executed.
ERROR: 9 TEST BUNDLE(S) FAILED:
[android\jni] base_unittest
[android\jni] platform_unittest
[android\jni] vstdlib_unittest
[android\jni] filesystem_unittest
[android\jni] vtxlib_unittest
[android\jni] vmdlib_unittest
[android\jni] scriptsys_unittest
[android\jni] physics_unittest
[android\jni] renderer_unittest


Компилирую в 32-bit, armv7-a, softfp, api level 16, clang.
Эмулятор создавался так:
Цитата:
avdmanager create avd -n EmulatorDevice -k "system-images;android-16;default;armeabi-v7a" -c 50M -f


Что любопытно - некоторые программы (не юнит-тесты) на эмуляторе стартуют, например, компилятор текстур makevtx и компилятор моделей makevmd. Но в 90% случаев они тоже выдают эту ошибку "Illegal instruction". А в 10% случаев - запускаются.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 177621

Старое сообщение 20-04-2019 20:10
-
EXL
Житель форума

Дата регистрации: Oct 2012
Проживает: Новосибирск
Сообщений: 246
Возраст: 35

Рейтинг



XaeroX А чем компилируешь? CMake или ndk-build?

Illegal instruction это как раз тот случай, когда в либе/бинаре исполнение натыкается на инструкцию, которая не поддерживается процессором, например, компиляция каких-то определённых модулей идёт с mfpu=neon или определённым march/mcpu/mtune.

Какой Android NDK? Новый или старый? Если новый, то там могли уже вообще дропнуть древние устройства без FPU и компилятор навставлял подобных инструкций. Google подобное может выкинуть, учитывая что все 32-битные приложения они официально дропают в августе 2019-го.

В общем, тебе нужно смотреть лог сборки на предмет проскакивания всяких там подозрительных опций компилятора. Заюзай такое, если у тебя Gradle:



И смотри в лог. Я так кстати обнаружил, что мне сборочные системы (ndk-build и CMake) пихают по умолчанию такое:

code:
-mfpu=vfpv3-d16 -fno-addrsig -march=armv7-a -mthumb


Но у меня была обратная ситуация -- мне нужно было нативный код собрать конкретно под мой девайс, а не под Generic ARM, то есть с моими:

code:
-mcpu=cortex-a15 -mfpu=neon-vfpv4


И вот в добавление к захардкоженным Generic vfpv3-d16 добавлялась ещё и специфичная neon-vfpv4, но компилятор брал именно её, поскольку флаги "новых" CPU/FPU, заглушают уже заданные старые. Посмотреть информацию что там за CPU и FPU инструкции оно тебе вкомпилило можно через readelf:

code:
$ /opt/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-readelf -A libSpoutOld.so Attribute Section: aeabi File Attributes Tag_CPU_name: "ARM v7" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_FP_arch: VFPv3 Tag_ABI_PCS_GOT_use: GOT-indirect Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_enum_size: int Tag_CPU_unaligned_access: v6 Tag_ABI_FP_16bit_format: IEEE 754 $ /opt/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-readelf -A libSpout.so Attribute Section: aeabi File Attributes Tag_CPU_name: "ARM v7" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_FP_arch: VFPv4 Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC Tag_ABI_PCS_GOT_use: GOT-indirect Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_enum_size: int Tag_CPU_unaligned_access: v6 Tag_FP_HP_extension: Allowed Tag_ABI_FP_16bit_format: IEEE 754 Tag_MPextension_use: Allowed Tag_DIV_use: Allowed in v7-A with integer division extension Tag_Virtualization_use: TrustZone and Virtualization Extensions


Я склоняюсь ко мнению, что у тебя ситуация, когда эмулируемый процессор твоём Android Emulator не знает что такое vfpv3-d16, а компилятор навставлял этих инструкций потому что они теперь идут по умолчанию.

Отредактировано EXL 21-04-2019 в 04:08

Сообщить модератору | | IP: Записан
Сообщение: 177651

Старое сообщение 21-04-2019 04:06
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


EXL
У нас своя система сборки и самописный мейкфайл, общий под все оси, с кучей ifeq/ifneq, разумеется.

Цитата:
$ /l/Android/ndk/bin/arm-linux-androideabi-readelf.exe -A base_unittest
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM v7"
Tag_CPU_arch: v7
Tag_CPU_arch_profile: Application
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: VFPv3
Tag_Advanced_SIMD_arch: NEONv1
Tag_ABI_PCS_GOT_use: GOT-indirect
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align_needed: 8-byte
Tag_ABI_enum_size: int
Tag_CPU_unaligned_access: v6
Tag_ABI_FP_16bit_format: IEEE 754


Не в этом ли проблема? (выделил жирным)

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 177656

Старое сообщение 21-04-2019 05:57
-
EXL
Житель форума

Дата регистрации: Oct 2012
Проживает: Новосибирск
Сообщений: 246
Возраст: 35

Рейтинг



XaeroX, скорее всего. Значит где-то компилятору проставляется neon.

Сообщить модератору | | IP: Записан
Сообщение: 177657

Старое сообщение 21-04-2019 06:16
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Точно, это оно. Видимо, по умолчанию в апи левел 16 стал неон. Раньше-то я с 14-м собирал.
Проблема решена добавлением "-mfpu=vfpv3-d16".
EXL большое спасибо!

Добавлено 21-04-2019 в 16:02:

Разгадал загадку одного падающего юнит-теста, и просто оставлю это здесь:

Цитата:
Correct soname/path handling (Available in API level >= 23)

The dynamic linker now understands the difference between a library’s soname and its path (public bug https://code.google.com/p/android/issues/detail?id=6670). API level 23 is the first release where search by soname is implemented. Earlier releases would assume that the basename of the library was the soname, and used that to search for already-loaded libraries. For example, dlopen("/this/directory/does/not/exist/libc.so", RTLD_NOW) would find /system/lib/libc.so because it’s already loaded. This also meant that it was impossible to have two libraries "dir1/libx.so" and "dir2/libx.so" --- the dynamic linker couldn’t tell the difference and would always use whichever was loaded first, even if you explicitly tried to load both. This also applied to DT_NEEDED entries.


Т.е. до апи левела 23, если сошка была загружена, то попытка загрузить сошку с тем же именем, но по другому пути, всегда удавалась (и давала хэндл первой библиотеки), даже если этот путь не существовал. Потрясающая дыра в безопасности, надо сказать...

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 177659

Старое сообщение 21-04-2019 09:02
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX это всё что нужно знать про гугл, их коде-стайл и их юнит-тесты.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 177674

Старое сообщение 21-04-2019 14:10
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


XaeroX аплодисменты стоя. Осталось Гуглу, Циске и Майку объединиться в какой-нибудь консорциум по безопасности и проводить высокоинтеллектуальные семинары!

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 177678

Старое сообщение 21-04-2019 14:53
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Товарищи эндэкашники, а на Андроид какой версии вы обычно таргетируете свой код?
Я ориентировался на 4.0 как на минимальный (апи левел 16), но сейчас подумываю переориентироваться на 5.0 (апи левел 21), т.к. хочу собирать 64-битные бинарники, а это кажется только на 21 апи возможно (в 16-м тулчейне я не вижу кланга для arm64).
Это оправдано сейчас?
У меня самого две андроид-железки, одна 5.1 и другая 8.0.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 177879

Старое сообщение 25-04-2019 06:23
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX а што новые андроеды 64-х битные? Ничоси техника зашла.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 177882

Старое сообщение 25-04-2019 07:02
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Дядя Миша
Да. А с августа 2019 Гугл требует, чтобы все засылаемые в маркет программы и игры были 64-битными. При этом в APK можно класть и 32-битные, и 64-битные бинарники (андроид сам подцепит нужные в зависимости от своей битности). Но теперь 64-битные становятся строго обязательными для гугл-плея.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 177883

Старое сообщение 25-04-2019 07:13
-
AntiPlayer
Highway to Hell

Дата регистрации: May 2006
Проживает: Смоленск
Сообщений: 1015
Возраст: 33

Рейтинг



XaeroX
А ты уверен, что устройства, на которых Android 4, вообще потянут игру?
Если да, то на осень 2018 года доля устройств на 4.0-4.4 около десяти процентов.
Готов ли ты ими пожертвовать?
Я думаю, что стоит отказаться от их поддержки.

__________________
I tell you to enjoy life

Сообщить модератору | | IP: Записан
Сообщение: 177890

Старое сообщение 25-04-2019 08:41
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
AntiPlayer писал:
А ты уверен, что устройства, на которых Android 4, вообще потянут игру?

Ну мне кажется, что должны, хотя портирование ещё не закончено.
У нас же там на андроиде очень примитивная графика и вообще GLES1.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 177891

Старое сообщение 25-04-2019 09:05
-
AntiPlayer
Highway to Hell

Дата регистрации: May 2006
Проживает: Смоленск
Сообщений: 1015
Возраст: 33

Рейтинг



Цитата:
XaeroX писал:
У нас же там на андроиде очень примитивная графика

Я думал графон будет, как в ПК версии и опциональный

__________________
I tell you to enjoy life

Сообщить модератору | | IP: Записан
Сообщение: 177892

Старое сообщение 25-04-2019 09:13
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 16:37. Новая тема    Ответить
Страницы (5): « 1 [2] 3 4 5 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > [iOS, Android] Нубские вопросы от XaeroX
Есть ли у нас мобильные разработчики?
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024