using ::testing::Combine;
#ifdef TDM_UT_TEST_WITH_PARAMS
-class TDMEnv : public TestWithParam< ::testing::tuple<bool, bool, const char*> >
+class TDMEnv : public TestWithParam< ::testing::tuple<bool, const char*> >
{
public:
void SetUp(void);
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMBackendCaptureParams,
TDMBackendCapture,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMBackendCaptureParams,
TDMBackendCapture,
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMBackendBasicParams,
TDMBackendBasic,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMBackendBasicParams,
TDMBackendBasic,
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMBackendDisplayParams,
TDMBackendDisplay,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMBackendDisplayParams,
TDMBackendDisplay,
TDMEnv::SetUp();
- /* thread, commit_per_vblank should be turned off for testing TDMBackend
- * all TDMBackend's tcs should call tdm_output_commit once in a vblank.
- * don't call tdm_layer_commit.
- */
tdm_config_set_int(TDM_CONFIG_KEY_GENERAL_THREAD, 0);
- tdm_config_set_int(TDM_CONFIG_KEY_GENERAL_COMMIT_PER_VBLANK, 0);
debug = getenv("TDM_UT_DEBUG_BACKEND");
if (debug && (debug[0] == '1'))
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMBackendEnvParams,
TDMBackendEnv,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMBackendEnvParams,
TDMBackendEnv,
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMBackendPPParams,
TDMBackendPP,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMBackendPPParams,
TDMBackendPP,
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMBufferParams,
TDMBuffer,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMBufferParams,
TDMBuffer,
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMClientParams,
TDMClient,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMClientParams,
TDMClient,
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMDisplayParams,
TDMDisplay,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMDisplayParams,
TDMDisplay,
setenv("TBM_DISPLAY_SERVER", "1", 1);
#ifdef TDM_UT_TEST_WITH_PARAMS
- /* commit_per_vblank depends on backend. can't choose it in frontend side.
- * this is only for testing.
- */
- int commit_per_vblank = ::testing::get<0>(GetParam());
- tdm_config_set_int(TDM_CONFIG_KEY_GENERAL_COMMIT_PER_VBLANK, commit_per_vblank);
-
- thread = ::testing::get<1>(GetParam());
- test_backend = ::testing::get<2>(GetParam());
+ thread = ::testing::get<0>(GetParam());
+ test_backend = ::testing::get<1>(GetParam());
#else
test_backend = ::testing::get<0>(GetParam());
#endif
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMEnvParams,
TDMEnv,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMEnvParams,
TDMEnv,
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMEventLoopParams,
TDMEventLoop,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMEventLoopParams,
TDMEventLoop,
TEST_P(TDMHelper, HelperCaptureOutputNullOther)
{
- for (int o = 0; o < output_count; o++) {
- tdm_error ret;
- tdm_output *output = tdm_display_get_output(dpy, o, &ret);
- EXPECT_EQ(ret, TDM_ERROR_NONE);
- EXPECT_NE(output, NULL);
- tdm_helper_output_commit_per_vblank_enabled(output);
- }
-
tbm_surface_h dump = (tbm_surface_h)TDM_UT_INVALID_VALUE;
EXPECT_EQ(tdm_helper_capture_output(NULL, dump, 0, 0, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE,
tdm_helper_get_display_information(dpy, NULL, NULL);
}
-TEST_P(TDMHelper, HelperCommitPerVblankEnabled)
-{
- EXPECT_EQ(tdm_helper_commit_per_vblank_enabled(dpy), 0);
-}
-
-TEST_P(TDMHelper, HelperCommitPerVblankEnabledNullOBject)
-{
- EXPECT_EQ(tdm_helper_commit_per_vblank_enabled(NULL), 0);
-}
-
-TEST_P(TDMHelper, HelperOutputCommitPerVblankEnabledNullObject)
-{
- EXPECT_EQ(tdm_helper_output_commit_per_vblank_enabled(NULL), -1);
-}
-
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMHelperParams,
TDMHelper,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMHelperParams,
TDMHelper,
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMHwcParams,
TDMHwc,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMHwcParams,
TDMHwc,
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMHwcWindowParams,
TDMHwcWindow,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMHwcWindowParams,
TDMHwcWindow,
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMLayerParams,
TDMLayer,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMLayerParams,
TDMLayer,
TDM_UT_GOTO_IF_FAIL(tc_tdm_layer_set_buffer(layer, buffer) == true, failed);
- if (tdm_helper_output_commit_per_vblank_enabled(output))
- TDM_UT_GOTO_IF_FAIL(tdm_layer_commit(layer, NULL, NULL) == TDM_ERROR_NONE, failed);
- else
- TDM_UT_GOTO_IF_FAIL(tdm_output_commit(output, 0, NULL, NULL) == TDM_ERROR_NONE, failed);
+ TDM_UT_GOTO_IF_FAIL(tdm_output_commit(output, 0, NULL, NULL) == TDM_ERROR_NONE, failed);
}
TDM_UT_GOTO_IF_FAIL(tdm_output_get_conn_status(output, &status) == TDM_ERROR_NONE, failed);
TDM_UT_SKIP_FLAG(has_outputs);
for (int o = 0; o < output_count; o++) {
- /* if true, have to use tdm_layer_commit. so skip */
- if (tdm_helper_output_commit_per_vblank_enabled(outputs[o]))
- continue;
-
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
TDM_UT_SKIP_FLAG(has_outputs);
for (int o = 0; o < output_count; o++) {
- /* if true, have to use tdm_layer_commit. so skip */
- if (tdm_helper_output_commit_per_vblank_enabled(outputs[o]))
- continue;
-
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
TDM_UT_SKIP_FLAG(has_outputs);
for (int o = 0; o < output_count; o++) {
- /* if true, have to use tdm_layer_commit. so skip */
- if (tdm_helper_output_commit_per_vblank_enabled(outputs[o]))
- continue;
-
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
TDM_UT_SKIP_FLAG(has_outputs);
for (int o = 0; o < output_count; o++) {
- /* if true, have to use tdm_layer_commit. so skip */
- if (tdm_helper_output_commit_per_vblank_enabled(outputs[o]))
- continue;
-
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
TDM_UT_SKIP_FLAG(has_outputs);
for (int o = 0; o < output_count; o++) {
- /* if true, have to use tdm_layer_commit. so skip */
- if (tdm_helper_output_commit_per_vblank_enabled(outputs[o]))
- continue;
-
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
EXPECT_EQ(tdm_layer_commit(layer, NULL, NULL), TDM_ERROR_NONE);
- if (!tdm_helper_output_commit_per_vblank_enabled(outputs[o]))
- EXPECT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE);
- else
- EXPECT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_BAD_REQUEST);
+ EXPECT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_BAD_REQUEST);
}
}
TDM_UT_SKIP_FLAG(has_outputs);
for (int o = 0; o < output_count; o++) {
- if (!tdm_helper_output_commit_per_vblank_enabled(outputs[o]))
- continue;
EXPECT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_BAD_REQUEST);
}
}
TDM_UT_SKIP_FLAG(has_outputs);
for (int o = 0; o < output_count; o++) {
- /* if true, have to use tdm_layer_commit. so skip */
- if (tdm_helper_output_commit_per_vblank_enabled(outputs[o]))
- continue;
-
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
TDM_UT_SKIP_FLAG(has_outputs);
for (int o = 0; o < output_count; o++) {
- /* if true, have to use tdm_layer_commit. so skip */
- if (tdm_helper_output_commit_per_vblank_enabled(outputs[o]))
- continue;
-
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
TDM_UT_SKIP_FLAG(has_outputs);
for (int o = 0; o < output_count; o++) {
- /* if true, have to use tdm_layer_commit. so skip */
- if (tdm_helper_output_commit_per_vblank_enabled(outputs[o]))
- continue;
-
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
TDM_UT_SKIP_FLAG(has_outputs);
for (int o = 0; o < output_count; o++) {
- /* if true, have to use tdm_layer_commit. so skip */
- if (tdm_helper_output_commit_per_vblank_enabled(outputs[o]))
- continue;
-
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMOutputParams,
TDMOutput,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMOutputParams,
TDMOutput,
#ifdef TDM_UT_TEST_WITH_PARAMS
INSTANTIATE_TEST_CASE_P(TDMVblankParams,
TDMVblank,
- Combine(Bool(), Bool(), Values(TDM_DEFAULT_MODULE)));
+ Combine(Bool(), Values(TDM_DEFAULT_MODULE)));
#else
INSTANTIATE_TEST_CASE_P(TDMVblankParams,
TDMVblank,
tdm_error
tdm_display_get_max_layer_count(tdm_display *dpy, int *max_count);
-/**
- * @deprecated use @c tdm_helper_output_commit_per_vblank_enabled instead
- * @brief Get whether the commit-per-vblank functionality is enabled or not.
- * @param[in] dpy A display object
- * @return 1 if enabled. Otherwise, 0.
- */
-int
-tdm_helper_commit_per_vblank_enabled(tdm_display *dpy);
-
/**
* @brief Commit changes for a output object
* @details After all change of a output object are applied, a user commit handler
void
tdm_helper_get_display_information(tdm_display *dpy, char *reply, int *len);
-/**
- * @brief Get whether the commit-per-vblank functionality is enabled or not for the output.
- * @param[in] output An output the functionality has to be checked for
- * @return -1 if error occurred, 1 if enabled, 0 if disabled.
- */
-int
-tdm_helper_output_commit_per_vblank_enabled(tdm_output *output);
-
/**
* @brief Get whether the vblank timer is expired or not for the output.
* @param[in] output An output the functionality has to be checked for
const char *str;
tdm_error ret;
double stamp1, stamp2, start;
- int mode;
pthread_mutex_lock(&gLock);
private_display->init_count = 1;
g_private_display = private_display;
- /* the COMMIT_PER_VBLANK functionality is ability of an output to support
- * several operational modes (commit_per_vblank modes) related to tdm_commit;
- * this functionality can be turned off which means a default mode */
- mode = tdm_config_get_int(TDM_CONFIG_KEY_GENERAL_COMMIT_PER_VBLANK, 0);
- if (mode > 0) {
- tdm_private_module *b = NULL;
- tdm_private_output *o = NULL;
-
- /* outputs which support hwc capability can work only
- * if commit_per_vblank mode is '0' (default mode) */
- LIST_FOR_EACH_ENTRY(b, &private_display->module_list, link) {
- LIST_FOR_EACH_ENTRY(o, &b->output_list, link) {
- if (!(o->caps.capabilities & TDM_OUTPUT_CAPABILITY_HWC))
- tdm_output_choose_commit_per_vblank_mode(o, mode);
- }
- }
- }
-
if (error)
*error = TDM_ERROR_NONE;
*/
#define TDM_CONFIG_KEY_GENERAL_THREAD "general:thread"
-/* enable the tdm commit-per-vblank functionality. [0(disable), 1(enable)]
- * default: 0
- * ex) 1
- */
-#define TDM_CONFIG_KEY_GENERAL_COMMIT_PER_VBLANK "general:commit_per_vblank"
-
/* enable the tdm virtual output module. [0(disable), 1(enable)]
* default: 0
* ex) 1
private_voutput->private_output = private_output;
private_output->private_voutput = private_voutput;
- /* do not use vblank */
- tdm_output_choose_commit_per_vblank_mode(private_output, 0);
-
LIST_ADDTAIL(&private_voutput->link, &private_module->voutput_list);
}
_pthread_mutex_unlock(&private_display->lock);
}
-/* LCOV_EXCL_START */
-EXTERN int
-tdm_helper_commit_per_vblank_enabled(tdm_display *dpy)
-{
- TDM_DEPRECATED("Use tdm_helper_output_commit_per_vblank_enabled");
-
- return 0;
-}
-/* LCOV_EXCL_STOP */
-
-EXTERN int
-tdm_helper_output_commit_per_vblank_enabled(tdm_output *output)
-{
- tdm_private_output *private_output = output;
-
- TDM_RETURN_VAL_IF_FAIL(private_output != NULL, -1);
-
- return !!private_output->commit_per_vblank;
-}
-
EXTERN unsigned int
tdm_helper_output_vblank_timer_expired(tdm_output *output)
{
TDM_SNPRINTF(reply, len, "log path: '%s'\n", path);
}
-static void
-_tdm_monitor_server_choose_commit_per_vblank_mode(unsigned int pid, char *cwd, int argc, char *argv[], char *reply, int *len, tdm_display *dpy)
-{
- int output_idx;
- int mode;
- char *arg;
- char *end;
- tdm_error err;
-
- /* TODO: do we have to provide an ability to choose commit_per_vblank mode outside? */
-
- if (argc < 4) {
- _tdm_monitor_server_usage(argv[0], reply, len);
- return;
- }
-
- arg = argv[2];
- output_idx = strtol(arg, &end, 10);
-
- arg = argv[3];
- mode = strtol(arg, &end, 10);
-
- err = tdm_output_choose_commit_per_vblank_mode(tdm_display_get_output(dpy, output_idx, NULL), mode);
- if (err != TDM_ERROR_NONE) {
- TDM_SNPRINTF(reply, len, "an error: output_idx or mode is wrong\n");
- return;
- }
-
- TDM_SNPRINTF(reply, len, "the mode's been set\n");
-}
-
static void
_tdm_monitor_server_fps(unsigned int pid, char *cwd, int argc, char *argv[], char *reply, int *len, tdm_display *dpy)
{
"<path>",
"console"
},
- {
- "choose_commit_per_vblank_mode", _tdm_monitor_server_choose_commit_per_vblank_mode,
- "choose a commit_per_vblank mode for the output",
- "<output_idx> <mode>",
- "0 1 or 1 2 or 2 0"
- },
{
"fps", _tdm_monitor_server_fps,
"enable/disable to print fps",
/* LCOV_EXCL_STOP */
}
-INTERN tdm_error
-tdm_output_choose_commit_per_vblank_mode(tdm_private_output *private_output, int mode)
-{
- if (!private_output)
- return TDM_ERROR_INVALID_PARAMETER;
-
- if (mode < 0 || mode > 2)
- return TDM_ERROR_INVALID_PARAMETER;
-
- private_output->commit_per_vblank = mode;
-
- if (private_output->commit_per_vblank == 0)
- TDM_INFO("commit per vblank: disable");
- else if (private_output->commit_per_vblank == 1)
- TDM_INFO("commit per vblank: enable (1 layer)");
- else if (private_output->commit_per_vblank == 2)
- TDM_INFO("commit per vblank: enable (previous commit)");
-
- return TDM_ERROR_NONE;
-}
-
/* LCOV_EXCL_START */
INTERN tdm_error
tdm_voutput_destroy(tdm_voutput *voutput)
tdm_error
tdm_output_get_dpms_changing(tdm_output *output, int *changing);
-tdm_error
-tdm_output_choose_commit_per_vblank_mode(tdm_private_output *private_output, int mode);
-
void
tdm_output_remove_vblank_handler_internal(tdm_output *output, tdm_output_vblank_handler func, void *user_data);
void