Войти
ПрограммированиеФорумЗвук

OpenAL заикается звук при низком фпс (2 стр)

Страницы: 1 2
#15
14:30, 22 июля 2013

gkv311
> В большинстве случаев достаточно положить openal32.dll рядом с executable
> приложения, и никакие левые библиотеки из system32 не будут загружаться (смотри
> приоритет загрузки DLL библиотек).
у меня почемуто ищет в system32

Используя механизмы явного и неявного связывания, Windows сначала выполняет поиск "известных библиотек DLL", таких как Kernel32.dll и User32.dll.  Затем Windows выполняет поиск библиотек DLL в следующей последовательности:
1.Каталог, в котором находится исполняемый модуль текущего процесса. 
2.Текущий каталог. 
3.Системный каталог Windows.  Путь к этому каталогу извлекается с помощью функции GetSystemDirectory.
4.Каталог Windows.  Путь к этому каталогу извлекается с помощью функции GetWindowsDirectory.
5.Каталоги, указанные в переменной среды PATH.

неужели она известная? :)

gkv311
> Что касается глюков, то OpenAL soft - самая адекватная реализация OpenAL
именно та причина по которой я пересел с обычной(креатив), очень много жалоб что она вообще не запускалась на машинах, пока не сделаешь redist
даже если длл лежит рядом, пока ее нету в сюстем32 на некоторых машинах не запускалось (


#16
16:42, 22 июля 2013

IROV..
впервые слышу про дефолтный openal я обычно ставил из инсталятора, он вроде около 100кб весил.

#17
16:48, 22 июля 2013

Pushkoff
может кто то поставил уже до меня :)

#18
16:07, 28 авг. 2013

Pushkoff
> 48к это очень много. это 500мс звука. начини с кусков размером в 1 фпс.
У меня на iPhone 2G были такие буферы и все работало чотко. Правда там было хардварное декодирование :)

#19
15:29, 2 окт. 2013

Ситуация продолжается,

теперь вот как выглядит

в дебаге все ок, никакого потрескивания при низком фпс
если собираю релизный билд - потрескивание вернулось :(

что делать?

З.Ы. релизная сборка игры, дебажный OpenAL32 - трещит, ощушение что там не работает многопоточность при релизе, звук в основном потоке идет ((
З.Ы. дебаг собирает MSVC2010, а release собираю через mingw
З.Ы. собрал дебаг под mingw, вообщем тоже трещит

IF(MSVC)
    # ???
    SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -D_DEBUG")
    SET(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -DNDEBUG")
    SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNDEBUG")
    SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")
    ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
    ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_DEPRECATE)

    IF(NOT DXSDK_DIR)
        STRING(REGEX REPLACE "\\\\" "/" DXSDK_DIR "$ENV{DXSDK_DIR}")
    ELSE()
        STRING(REGEX REPLACE "\\\\" "/" DXSDK_DIR "${DXSDK_DIR}")
    ENDIF()
    IF(DXSDK_DIR)
        MESSAGE(STATUS "Using DirectX SDK directory: ${DXSDK_DIR}")
        SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} "${DXSDK_DIR}/Include")
        INCLUDE_DIRECTORIES("${DXSDK_DIR}/Include")
        LINK_DIRECTORIES("${DXSDK_DIR}/Lib")
    ENDIF()

    OPTION(FORCE_STATIC_VCRT "Force /MT for static VC runtimes" OFF)
    IF(FORCE_STATIC_VCRT)
        FOREACH(flag_var
                CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
                CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
            IF(${flag_var} MATCHES "/MD")
                STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
            ENDIF()
        ENDFOREACH(flag_var)
    ENDIF()
ELSE()
    ADD_DEFINITIONS(-Winline -Wall)
    CHECK_C_COMPILER_FLAG(-Wextra HAVE_W_EXTRA)
    IF(HAVE_W_EXTRA)
        ADD_DEFINITIONS(-Wextra)
    ENDIF()

    IF(WERROR)
        ADD_DEFINITIONS(-Werror)
    ENDIF()

    SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-g -O2 -D_DEBUG" CACHE STRING
        "Flags used by the compiler during Release with Debug Info builds."
        FORCE)
    SET(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG" CACHE STRING
        "Flags used by the compiler during release minsize builds."
        FORCE)
    SET(CMAKE_C_FLAGS_RELEASE "-O2 -march=i686 -fomit-frame-pointer -DNDEBUG" CACHE STRING
        "Flags used by the compiler during release builds"
        FORCE)
    SET(CMAKE_C_FLAGS_DEBUG "-g3 -march=i686 -D_DEBUG" CACHE STRING
        "Flags used by the compiler during debug builds."
        FORCE)

    CHECK_C_SOURCE_COMPILES("int foo() __attribute__((destructor));
                            int main() {return 0;}" HAVE_GCC_DESTRUCTOR)
ENDIF()

вот такую разницу нашел, как это может давать такое?))

#20
17:37, 2 окт. 2013

Вроде беда в том что под mingw не хочет доставаться MMDevApi и DSound
в MSVC берется MMDevApi

наверное вопрос переростает в "как под mingw собрать openal-soft с поддержкой MMDevApi и DSound"

#21
22:11, 2 окт. 2013

IROV..
А какой mingw? Старый добрый или MinGW-w64?

#22
3:58, 3 окт. 2013

Guppy the Cat
собираю старым добрым, седня знакомился с w64, можешь помочь с ним? а то я чтото не понимаю как, там только одни исходники, нету инфраструктуры. Говорят им можно.

я уже стока людям крови испортил этим багом ))

#23
4:36, 3 окт. 2013

IROV..
Есть mingw-builds с простым инсталлятором:
http://sourceforge.net/projects/mingwbuilds/files/mingw-builds-in… .exe/download

#24
4:47, 3 окт. 2013

Guppy the Cat
это обычный?

#25
4:58, 3 окт. 2013

IROV..
Это который w64. Собственно, тут всё написано:
http://mingw-w64.sourceforge.net/download.php

#26
15:23, 3 окт. 2013

Guppy the Cat
Огромное спасибо! вроде все заработало!

#27
15:45, 3 окт. 2013

Guppy the Cat

IF(HAVE_WINDOWS_H)
    MESSAGE(11111)
    IF(MMDEVAPI)
        MESSAGE(22222)
        CHECK_INCLUDE_FILE(mmdeviceapi.h HAVE_MMDEVICEAPI_H)
        IF(HAVE_MMDEVICEAPI_H)
            MESSAGE(33333)

Вот такой момент остался, если я убираю проверку IF(HAVE_MMDEVICEAPI_H) то все ок, все компилится
если оставляю то не проходит

с чем может быть связано?

Страницы: 1 2
ПрограммированиеФорумЗвук

Тема в архиве.