mozglue/tests/ShowSSEConfig.cpp
author Kartikaya Gupta <kgupta@mozilla.com>
Sun, 09 Apr 2017 17:30:27 -0400
changeset 352100 e3ddc4081b947910affb3c7fb6207e0adfe6a251
parent 140162 f6412c912847128e5aa1c8a7ced227356959fb84
child 448947 6f3709b3878117466168c40affa7bca0b60cf75b
permissions -rw-r--r--
Bug 1350638 - Remove sync GetCompositorOptions call in TabChild::InitRenderingState. r=dvander The goal of this patch is to remove the call to the sync IPC GetCompositorOptions message from TabChild::InitRenderingState. In order to this, we have InitRenderingState take the CompositorOptions as an argument instead, and propagate that backwards through the call sites. Eventually we can propagate it back to a set of already-sync IPC messages in PCompositorBridge that are used during layers id registration (NotifyChildCreated, NotifyChildRecreated, etc.). Therefore this patch effectively piggybacks the CompositorOptions sync IPC onto these pre-existing sync IPC messages. The one exception is when we propagate it back to the AdoptChild call. If this message were sync we could just use it like the others and have it return a CompositorOptions. However, it is async, so instead we add another call to GetCompositorOptions here temporarily. This will be removed in the next patch. MozReview-Commit-ID: AtdYOuXmHu4

/* vim: set shiftwidth=2 tabstop=8 autoindent cindent expandtab: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "mozilla/SSE.h"
#include <stdio.h>

int main()
{
  printf("CPUID detection present: %s\n",
#ifdef MOZILLA_SSE_HAVE_CPUID_DETECTION
         "yes"
#else
         "no"
#endif
        );

#ifdef MOZILLA_COMPILE_WITH_MMX
#define COMPILE_MMX_STRING "Y"
#else
#define COMPILE_MMX_STRING "-"
#endif
#ifdef MOZILLA_PRESUME_MMX
#define PRESUME_MMX_STRING "Y"
#else
#define PRESUME_MMX_STRING "-"
#endif

#ifdef MOZILLA_COMPILE_WITH_SSE
#define COMPILE_SSE_STRING "Y"
#else
#define COMPILE_SSE_STRING "-"
#endif
#ifdef MOZILLA_PRESUME_SSE
#define PRESUME_SSE_STRING "Y"
#else
#define PRESUME_SSE_STRING "-"
#endif

#ifdef MOZILLA_COMPILE_WITH_SSE2
#define COMPILE_SSE2_STRING "Y"
#else
#define COMPILE_SSE2_STRING "-"
#endif
#ifdef MOZILLA_PRESUME_SSE2
#define PRESUME_SSE2_STRING "Y"
#else
#define PRESUME_SSE2_STRING "-"
#endif

#ifdef MOZILLA_COMPILE_WITH_SSE3
#define COMPILE_SSE3_STRING "Y"
#else
#define COMPILE_SSE3_STRING "-"
#endif
#ifdef MOZILLA_PRESUME_SSE3
#define PRESUME_SSE3_STRING "Y"
#else
#define PRESUME_SSE3_STRING "-"
#endif

#ifdef MOZILLA_COMPILE_WITH_SSSE3
#define COMPILE_SSSE3_STRING "Y"
#else
#define COMPILE_SSSE3_STRING "-"
#endif
#ifdef MOZILLA_PRESUME_SSSE3
#define PRESUME_SSSE3_STRING "Y"
#else
#define PRESUME_SSSE3_STRING "-"
#endif

#ifdef MOZILLA_COMPILE_WITH_SSE4A
#define COMPILE_SSE4A_STRING "Y"
#else
#define COMPILE_SSE4A_STRING "-"
#endif
#ifdef MOZILLA_PRESUME_SSE4A
#define PRESUME_SSE4A_STRING "Y"
#else
#define PRESUME_SSE4A_STRING "-"
#endif

#ifdef MOZILLA_COMPILE_WITH_SSE4_1
#define COMPILE_SSE4_1_STRING "Y"
#else
#define COMPILE_SSE4_1_STRING "-"
#endif
#ifdef MOZILLA_PRESUME_SSE4_1
#define PRESUME_SSE4_1_STRING "Y"
#else
#define PRESUME_SSE4_1_STRING "-"
#endif

#ifdef MOZILLA_COMPILE_WITH_SSE4_2
#define COMPILE_SSE4_2_STRING "Y"
#else
#define COMPILE_SSE4_2_STRING "-"
#endif
#ifdef MOZILLA_PRESUME_SSE4_2
#define PRESUME_SSE4_2_STRING "Y"
#else
#define PRESUME_SSE4_2_STRING "-"
#endif

  printf("Feature Presume Compile Support  Use\n");
#define SHOW_INFO(featurelc_, featureuc_)                                     \
  printf(    "%7s    %1s       %1s       %1s\n",                              \
         #featurelc_,                                                         \
         PRESUME_##featureuc_##_STRING,                                       \
         COMPILE_##featureuc_##_STRING,                                       \
         (mozilla::supports_##featurelc_() ? "Y" : "-"));
  SHOW_INFO(mmx, MMX)
  SHOW_INFO(sse, SSE)
  SHOW_INFO(sse2, SSE2)
  SHOW_INFO(sse3, SSE3)
  SHOW_INFO(ssse3, SSSE3)
  SHOW_INFO(sse4a, SSE4A)
  SHOW_INFO(sse4_1, SSE4_1)
  SHOW_INFO(sse4_2, SSE4_2)
  return 0;
}