Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 088bc0c7 authored by Steve Kondik's avatar Steve Kondik Committed by Gerrit Code Review
Browse files

Merge "[opengl] implement work around for tegra errata 657451" into gingerbread

parents 0387cb6e 251e278d
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -45,6 +45,9 @@ ifneq ($(TARGET_SIMULATOR),true)
    ifeq ($(TARGET_ARCH)-$(ARCH_ARM_HAVE_TLS_REGISTER),arm-true)
        LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
    endif
    ifeq ($(TARGET_HAVE_TEGRA_ERRATA_657451),true)
        LOCAL_CFLAGS += -DHAVE_TEGRA_ERRATA_657451
    endif
    LOCAL_C_INCLUDES += bionic/libc/private
endif

+18 −0
Original line number Diff line number Diff line
@@ -27,6 +27,9 @@ else
        LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
    endif
    # we need to access the private Bionic header <bionic_tls.h>
    ifeq ($(TARGET_HAVE_TEGRA_ERRATA_657451),true)
        LOCAL_CFLAGS += -DHAVE_TEGRA_ERRATA_657451
    endif
    LOCAL_C_INCLUDES += bionic/libc/private
endif

@@ -41,6 +44,9 @@ endif
ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
  LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
endif
ifeq ($(TARGET_HAVE_TEGRA_ERRATA_657451),true)
  LOCAL_CFLAGS += -DHAVE_TEGRA_ERRATA_657451
endif

include $(BUILD_SHARED_LIBRARY)
installed_libEGL := $(LOCAL_INSTALLED_MODULE)
@@ -84,6 +90,9 @@ else
    ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
        LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
    endif
    ifeq ($(TARGET_HAVE_TEGRA_ERRATA_657451),true)
        LOCAL_CFLAGS += -DHAVE_TEGRA_ERRATA_657451
    endif
    LOCAL_C_INCLUDES += bionic/libc/private
endif

@@ -94,6 +103,9 @@ LOCAL_CFLAGS += -fvisibility=hidden
ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
  LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
endif
ifeq ($(TARGET_HAVE_TEGRA_ERRATA_657451),true)
  LOCAL_CFLAGS += -DHAVE_TEGRA_ERRATA_657451
endif

include $(BUILD_SHARED_LIBRARY)

@@ -120,6 +132,9 @@ else
    ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
        LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
    endif
    ifeq ($(TARGET_HAVE_TEGRA_ERRATA_657451),true)
        LOCAL_CFLAGS += -DHAVE_TEGRA_ERRATA_657451
    endif
    LOCAL_C_INCLUDES += bionic/libc/private
endif

@@ -130,6 +145,9 @@ LOCAL_CFLAGS += -fvisibility=hidden
ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
  LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
endif
ifeq ($(TARGET_HAVE_TEGRA_ERRATA_657451),true)
  LOCAL_CFLAGS += -DHAVE_TEGRA_ERRATA_657451
endif

include $(BUILD_SHARED_LIBRARY)

+10 −1
Original line number Diff line number Diff line
@@ -41,9 +41,18 @@ using namespace android;

#if USE_FAST_TLS_KEY

    #ifdef HAVE_TEGRA_ERRATA_657451
        #define MUNGE_TLS(_tls) \
            "bfi " #_tls ", " #_tls ", #20, #1 \n" \
            "bic " #_tls ", " #_tls ", #1 \n"
    #else
        #define MUNGE_TLS(_tls) "\n"
    #endif

    #ifdef HAVE_ARM_TLS_REGISTER
        #define GET_TLS(reg) \
            "mrc p15, 0, " #reg ", c13, c0, 3 \n"
            "mrc p15, 0, " #reg ", c13, c0, 3 \n" \
            MUNGE_TLS(reg)
    #else
        #define GET_TLS(reg) \
            "mov   " #reg ", #0xFFFF0FFF      \n"  \
+10 −1
Original line number Diff line number Diff line
@@ -97,9 +97,18 @@ GL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type,

#if USE_FAST_TLS_KEY && !CHECK_FOR_GL_ERRORS

    #ifdef HAVE_TEGRA_ERRATA_657451
        #define MUNGE_TLS(_tls) \
            "bfi " #_tls ", " #_tls ", #20, #1 \n" \
            "bic " #_tls ", " #_tls ", #1 \n"
    #else
        #define MUNGE_TLS(_tls) "\n"
    #endif

    #ifdef HAVE_ARM_TLS_REGISTER
        #define GET_TLS(reg) \
            "mrc p15, 0, " #reg ", c13, c0, 3 \n"
            "mrc p15, 0, " #reg ", c13, c0, 3 \n" \
            MUNGE_TLS(reg)
    #else
        #define GET_TLS(reg) \
            "mov   " #reg ", #0xFFFF0FFF      \n"  \