skip tdm_layer api and output_commit api test if hwc enabled.
do not show the test result to screen if hwc enabled.
Change-Id: I80bee46fa75f16bc34cdb00e3f6c7129295bfd95
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
#define TDM_UT_CHECK_FLAG(FLAG) \
do {\
- if(!(FLAG)) \
+ if (!(FLAG)) \
TDM_UT_WRN("[ ] not supported");\
} while(0)
#define TDM_UT_SKIP_FLAG(FLAG) \
do {\
- if(!(FLAG)) {\
+ if (!(FLAG)) {\
TDM_UT_WRN("[ SKIPPED ] not supported");\
return;\
}\
flags |= TBM_BO_SCANOUT;
}
+ if (tc_tdm_output_is_hwc_enable(outputs[output_idx]))
+ flags |= TBM_BO_SCANOUT;
+
TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_buffer_create(w, h, fmt, flags, false, 3, buffers) == true);
TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_capture_fill_info(outputs[output_idx], buffers[0], t, c, frequency, stretch, &info) == true);
TDM_UT_RETURN_FALSE_IF_FAIL(tdm_capture_set_info(capture, &info) == TDM_ERROR_NONE);
continue;
for (int f = 0; f < format_count; f++) {
- FindLayer(o, formats[f], &dst_pos);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ dst_layer = NULL;
+ else
+ FindLayer(o, formats[f], &dst_pos);
ASSERT_EQ(TestPrepare(o, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f],
TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true);
ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE);
- FindLayer(o, formats[f], &dst_pos);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ dst_layer = NULL;
+ else
+ FindLayer(o, formats[f], &dst_pos);
ASSERT_EQ(TestPrepare(o, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f],
TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true);
ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE);
- FindLayer(o, formats[f], &dst_pos);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ dst_layer = NULL;
+ else
+ FindLayer(o, formats[f], &dst_pos);
ASSERT_EQ(TestPrepare(o, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f],
TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true);
TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f]));
- FindLayer(o, formats[f], &dst_pos);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ dst_layer = NULL;
+ else {
+ FindLayer(o, formats[f], &dst_pos);
- if (!dst_layer) {
- TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
- continue;
+ if (!dst_layer) {
+ TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
+ continue;
+ }
}
ASSERT_EQ(TestPrepare(o, half_size, half_size, formats[f],
snprintf(temp, sizeof temp, "f%d_b%d", f, b);
DumpBuffer(b, temp);
#endif
- ShowBuffer(b, &dst_pos);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_WRN("hwc_enable, not support showing buffer");
+ else
+ ShowBuffer(b, &dst_pos);
}
TDM_UT_ASK_YNR("* Successed to capture a output to a '%c%c%c%c' buffer as letterbox size and show? (output: %d, layer: %d)",
FOURCC_STR(formats[f]), pipe, dst_layer_index);
-
- HideLayer();
+ if (!tc_tdm_output_is_hwc_enable(outputs[o]))
+ HideLayer();
TestDone();
}
TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f]));
- FindLayer(o, formats[f], &dst_pos);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ dst_layer = NULL;
+ else {
+ FindLayer(o, formats[f], &dst_pos);
- if (!dst_layer) {
- TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
- continue;
+ if (!dst_layer) {
+ TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
+ continue;
+ }
}
ASSERT_EQ(TestPrepare(o, half_size, half_size, formats[f],
snprintf(temp, sizeof temp, "f%d_b%d", f, b);
DumpBuffer(b, temp);
#endif
- ShowBuffer(b, &dst_pos);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_WRN("hwc_enable, not support showing buffer");
+ else
+ ShowBuffer(b, &dst_pos);
}
TDM_UT_ASK_YNR("* Successed to capture a output to a '%c%c%c%c' buffer as full size and show? (output: %d, layer: %d)",
FOURCC_STR(formats[f]), pipe, dst_layer_index);
-
- HideLayer();
+ if (!tc_tdm_output_is_hwc_enable(outputs[o]))
+ HideLayer();
TestDone();
}
TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f]));
- FindLayer(o, formats[f], &dst_pos);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ dst_layer = NULL;
+ else {
+ FindLayer(o, formats[f], &dst_pos);
- if (!dst_layer) {
- TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
- continue;
+ if (!dst_layer) {
+ TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
+ continue;
+ }
}
ASSERT_EQ(TestPrepare(o, half_size, half_size, formats[f],
snprintf(temp, sizeof temp, "f%d_b%d", f, b);
DumpBuffer(b, temp);
#endif
- ShowBuffer(b, &dst_pos);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_WRN("hwc_enable, not support showing buffer");
+ else
+ ShowBuffer(b, &dst_pos);
}
TDM_UT_ASK_YNR("* Successed to capture a output to a '%c%c%c%c' buffer as letterbox size and show? (output: %d, layer: %d)",
FOURCC_STR(formats[f]), pipe, dst_layer_index);
-
- HideLayer();
+ if (!tc_tdm_output_is_hwc_enable(outputs[o]))
+ HideLayer();
TestDone();
}
DumpBuffer(b, temp);
#endif
tdm_buffer_add_release_handler(buffer, _tc_tdm_backend_capture_buffer_release_cb, (void*)backend_capture);
- backend_capture->ShowBuffer(b, &backend_capture->dst_pos);
+ if (tc_tdm_output_is_hwc_enable(backend_capture->output)) {
+ TDM_UT_WRN("hwc_enable, not support showing buffer");
+ _tc_tdm_backend_capture_buffer_release_cb(buffer, user_data);
+ }
+ else
+ backend_capture->ShowBuffer(b, &backend_capture->dst_pos);
break;
}
}
TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f]));
- FindLayer(o, formats[f], &dst_pos);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ dst_layer = NULL;
+ else {
+ FindLayer(o, formats[f], &dst_pos);
- if (!dst_layer) {
- TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
- continue;
+ if (!dst_layer) {
+ TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
+ continue;
+ }
}
ASSERT_EQ(TestPrepare(o, half_size, half_size, formats[f],
TDM_UT_ASK_YNR("* Successed to capture a output to a '%c%c%c%c' buffer as letterbox size and show? (output: %d, layer: %d)",
FOURCC_STR(formats[f]), pipe, dst_layer_index);
-
- HideLayer();
+ if (!tc_tdm_output_is_hwc_enable(outputs[o]))
+ HideLayer();
TestDone();
}
TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f]));
- FindLayer(o, formats[f], &dst_pos);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ dst_layer = NULL;
+ else {
+ FindLayer(o, formats[f], &dst_pos);
- if (!dst_layer) {
- TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
- continue;
+ if (!dst_layer) {
+ TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
+ continue;
+ }
}
ASSERT_EQ(TestPrepare(o, half_size, half_size, formats[f],
TDM_UT_ASK_YNR("* Successed to capture a output to a '%c%c%c%c' buffer as full size and show? (output: %d, layer: %d)",
FOURCC_STR(formats[f]), pipe, dst_layer_index);
-
- HideLayer();
+ if (!tc_tdm_output_is_hwc_enable(outputs[o]))
+ HideLayer();
TestDone();
}
tdm_output *output = tdm_display_get_output(dpy, o, &ret);
ASSERT_EQ(ret, TDM_ERROR_NONE);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_SKIP_FLAG(0);
+
int layer_count = 0;
ASSERT_EQ(tdm_output_get_layer_count(output, &layer_count), TDM_ERROR_NONE);
TDM_UT_ASSERT_TRUE(layer_count > 0,
tdm_output *output = tdm_display_get_output(dpy, o, &ret);
ASSERT_EQ(ret, TDM_ERROR_NONE);
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_SKIP_FLAG(0);
+
int layer_count = 0;
ASSERT_EQ(tdm_output_get_layer_count(output, &layer_count), TDM_ERROR_NONE);
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_SKIP_FLAG(0);
+
ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true);
ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE);
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_SKIP_FLAG(0);
+
ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true);
ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE);
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_SKIP_FLAG(0);
+
ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true);
ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE);
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_SKIP_FLAG(0);
+
ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true);
ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE);
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_SKIP_FLAG(0);
+
ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true);
ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE);
ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true);
ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE);
- layer = tc_tdm_output_get_primary_layer(outputs[o]);
- ASSERT_NE(layer, NULL);
+ if (!tc_tdm_output_is_hwc_enable(outputs[o])) {
+ layer = tc_tdm_output_get_primary_layer(outputs[o]);
+ ASSERT_NE(layer, NULL);
- ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, true), true);
- ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true);
- DestroyBuffers();
+ ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, true), true);
+ ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true);
+ DestroyBuffers();
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE);
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE);
+ }
/* start from 1 */
for (int t = 1; t < 10; t++) {
ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true);
ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE);
- layer = tc_tdm_output_get_primary_layer(outputs[o]);
- ASSERT_NE(layer, NULL);
+ if (!tc_tdm_output_is_hwc_enable(outputs[o])) {
+ layer = tc_tdm_output_get_primary_layer(outputs[o]);
+ ASSERT_NE(layer, NULL);
- ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, true), true);
- ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true);
- DestroyBuffers();
+ ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, true), true);
+ ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true);
+ DestroyBuffers();
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE);
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE);
+ }
/* start from 1 */
for (int t = 1; t < 10; t++) {
ASSERT_EQ(tc_tdm_output_mode_setting(outputs[o]), true);
ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE);
- layer = tc_tdm_output_get_primary_layer(outputs[o]);
- ASSERT_NE(layer, NULL);
+ if (!tc_tdm_output_is_hwc_enable(outputs[o])) {
+ layer = tc_tdm_output_get_primary_layer(outputs[o]);
+ ASSERT_NE(layer, NULL);
- ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, true), true);
- ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true);
- DestroyBuffers();
+ ASSERT_EQ(tc_tdm_layer_prepare_buffer(layer, buffers, 1, true), true);
+ ASSERT_EQ(tc_tdm_layer_set_buffer(layer, buffers[0]), true);
+ DestroyBuffers();
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE);
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE);
+ }
/* start from 1 */
for (int t = 1; t < 10; t++) {
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_SKIP_FLAG(0);
+
layer = tc_tdm_output_get_primary_layer(outputs[o]);
ASSERT_NE(layer, NULL);
{
ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true);
+ if (output_count > 0) {
+ if (tc_tdm_output_is_hwc_enable(outputs[0])) {
+ ASSERT_EQ(tc_tdm_output_unset(dpy, outputs[0]), true);
+ TDM_UT_SKIP_FLAG(0);
+ }
+ }
+
for (int l = 0; l < layer_count; l++) {
tdm_error ret;
tdm_output *output;
{
ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true);
+ if (output_count > 0) {
+ if (tc_tdm_output_is_hwc_enable(outputs[0])) {
+ ASSERT_EQ(tc_tdm_output_unset(dpy, outputs[0]), true);
+ TDM_UT_SKIP_FLAG(0);
+ }
+ }
+
for (int l = 0; l < layer_count; l++) {
tdm_error ret;
tdm_output *output;
{
ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true);
+ if (output_count > 0) {
+ if (tc_tdm_output_is_hwc_enable(outputs[0])) {
+ ASSERT_EQ(tc_tdm_output_unset(dpy, outputs[0]), true);
+ TDM_UT_SKIP_FLAG(0);
+ }
+ }
+
for (int l = 0; l < layer_count; l++) {
tdm_error ret;
tdm_output *output;
{
ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true);
+ if (output_count > 0) {
+ if (tc_tdm_output_is_hwc_enable(outputs[0])) {
+ ASSERT_EQ(tc_tdm_output_unset(dpy, outputs[0]), true);
+ TDM_UT_SKIP_FLAG(0);
+ }
+ }
+
for (int l = 0; l < layer_count; l++) {
tdm_error ret;
tdm_output *output;
{
ASSERT_EQ(tc_tdm_output_prepare_all_output(dpy, outputs, output_count, false), true);
+ if (output_count > 0) {
+ if (tc_tdm_output_is_hwc_enable(outputs[0])) {
+ ASSERT_EQ(tc_tdm_output_unset(dpy, outputs[0]), true);
+ TDM_UT_SKIP_FLAG(0);
+ }
+ }
+
for (int l = 0; l < layer_count; l++) {
tdm_error ret;
tdm_output *output;
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_SKIP_FLAG(0);
+
ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
tdm_layer *layer = tc_tdm_output_get_primary_layer(outputs[o]);
ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
+ if (tc_tdm_output_is_hwc_enable(outputs[o])) {
+ ASSERT_EQ(tc_tdm_output_unset(dpy, outputs[o]), true);
+ TDM_UT_SKIP_FLAG(0);
+ }
+
tdm_layer *layer = tc_tdm_output_get_primary_layer(outputs[o]);
ASSERT_NE(layer, NULL);
if (!tc_tdm_output_is_connected(outputs[o]))
continue;
+ if (tc_tdm_output_is_hwc_enable(outputs[o])) {
+ ASSERT_EQ(tc_tdm_output_unset(dpy, outputs[o]), true);
+ TDM_UT_SKIP_FLAG(0);
+ }
+
tbm_surface_h displaying_buffer;
tdm_error ret;
tdm_info_layer info, temp;
tdm_layer *dst_layer;
const tbm_format *dst_formats;
+ tbm_format *pp_formats;
int dst_format_count;
int dst_zpos;
int dst_layer_index;
dst_format_count = 0;
dst_zpos = 0;
dst_layer_index = 0;
+ pp_formats = NULL;
}
void TDMBackendPP::SetUp(void)
tdm_pp_destroy(pp);
DestroyBuffers();
+ ASSERT_EQ(tc_tdm_output_unset(dpy, output), true);
TDMBackendDisplay::TearDown();
}
dst_flags |= TBM_BO_SCANOUT;
}
+ if (tc_tdm_output_is_hwc_enable(output))
+ dst_flags |= TBM_BO_SCANOUT;
+
TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_buffer_create(sw, sh, sf, src_flags, true, 3, srcbuf) == true);
TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_buffer_create(dw, dh, df, dst_flags, false, 3, dstbuf) == true);
TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_pp_fill_info(srcbuf[0], dstbuf[0], t, &info) == true);
tdm_error ret;
int count;
int primary_zpos, zpos;
+
+ if (tc_tdm_output_is_hwc_enable(output)) {
+ pp_formats = (tbm_format *)calloc(1, sizeof(tbm_format) * 2);
+ pp_formats[0] = TBM_FORMAT_NV12;
+ pp_formats[1] = TBM_FORMAT_YUV420;
+ dst_formats = pp_formats;
+ dst_format_count = 2;
+ TDM_UT_RETURN_FALSE_IF_FAIL(dst_formats != NULL);
+ TDM_UT_RETURN_FALSE_IF_FAIL(dst_format_count > 0);
+ dst_layer = NULL;
+ return true;
+ }
+
tdm_layer *primary = tc_tdm_output_get_primary_layer(output);
TDM_UT_RETURN_FALSE_IF_FAIL(primary != NULL);
TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_layer_count(output, &count) == TDM_ERROR_NONE);
tdm_error ret;
int count;
int primary_zpos, zpos;
+
+ if (tc_tdm_output_is_hwc_enable(output)) {
+ pp_formats = (tbm_format *)calloc(1, sizeof(tbm_format) * 2);
+ pp_formats[0] = TBM_FORMAT_ARGB8888;
+ pp_formats[1] = TBM_FORMAT_XRGB8888;
+ dst_formats = formats;
+ dst_format_count = 2;
+ TDM_UT_RETURN_FALSE_IF_FAIL(dst_formats != NULL);
+ TDM_UT_RETURN_FALSE_IF_FAIL(dst_format_count > 0);
+ dst_layer = NULL;
+ return true;
+ }
+
tdm_layer *primary = tc_tdm_output_get_primary_layer(output);
TDM_UT_RETURN_FALSE_IF_FAIL(primary != NULL);
TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_layer_count(output, &count) == TDM_ERROR_NONE);
void TDMBackendPP::ShowBuffer(int b)
{
ASSERT_NE(output, NULL);
+ if (tc_tdm_output_is_hwc_enable(output))
+ TDM_UT_SKIP_FLAG(0);
+
ASSERT_NE(dst_layer, NULL);
bool done = false;
void TDMBackendPP::HideLayer(void)
{
ASSERT_NE(output, NULL);
+ if (tc_tdm_output_is_hwc_enable(output))
+ TDM_UT_SKIP_FLAG(0);
+
ASSERT_NE(dst_layer, NULL);
tdm_layer_unset_buffer(dst_layer);
FindLayerUnderPrimary();
- ASSERT_NE(dst_layer, NULL);
+ if (!tc_tdm_output_is_hwc_enable(output))
+ ASSERT_NE(dst_layer, NULL);
for (int f = 0; f < dst_format_count; f++) {
bool done;
DestroyPP();
DestroyBuffers();
}
+ if (tc_tdm_output_is_hwc_enable(output) && pp_formats) {
+ free(pp_formats);
+ pp_formats = NULL;
+ }
}
TEST_P(TDMBackendPP, PPConvertOverlay)
FindLayerOverPrimary();
- TDM_UT_SKIP_FLAG(dst_layer != NULL);
+ if (!tc_tdm_output_is_hwc_enable(output))
+ TDM_UT_SKIP_FLAG(dst_layer != NULL);
for (int f = 0; f < dst_format_count; f++) {
bool done;
DestroyPP();
DestroyBuffers();
}
+ if (tc_tdm_output_is_hwc_enable(output) && pp_formats) {
+ free(pp_formats);
+ pp_formats = NULL;
+ }
}
TEST_P(TDMBackendPP, PPConvertScale)
FindLayerUnderPrimary();
- ASSERT_NE(dst_layer, NULL);
+ if (!tc_tdm_output_is_hwc_enable(output))
+ ASSERT_NE(dst_layer, NULL);
for (int f = 0; f < dst_format_count; f++) {
bool done;
DestroyPP();
DestroyBuffers();
}
+ if (tc_tdm_output_is_hwc_enable(output) && pp_formats) {
+ free(pp_formats);
+ pp_formats = NULL;
+ }
}
TEST_P(TDMBackendPP, PPConvertTransform)
FindLayerUnderPrimary();
- ASSERT_NE(dst_layer, NULL);
+ if (!tc_tdm_output_is_hwc_enable(output))
+ ASSERT_NE(dst_layer, NULL);
for (int f = 0; f < dst_format_count; f++) {
for (int t = (int)TDM_TRANSFORM_90; t <= (int)TDM_TRANSFORM_FLIPPED_270; t++) {
DestroyBuffers();
}
}
+ if (tc_tdm_output_is_hwc_enable(output) && pp_formats) {
+ free(pp_formats);
+ pp_formats = NULL;
+ }
}
TEST_P(TDMBackendPP, PPConvertCSC)
FindLayerUnderPrimary();
- ASSERT_NE(dst_layer, NULL);
+ if (!tc_tdm_output_is_hwc_enable(output))
+ ASSERT_NE(dst_layer, NULL);
for (int df = 0; df < dst_format_count; df++) {
for (int sf = 0; sf < format_count; sf++) {
DestroyBuffers();
}
}
+ if (tc_tdm_output_is_hwc_enable(output) && pp_formats) {
+ free(pp_formats);
+ pp_formats = NULL;
+ }
}
if (!tc_tdm_output_is_connected(output))
continue;
+ if (tc_tdm_output_is_hwc_enable(outputs[o]))
+ TDM_UT_SKIP_FLAG(0);
+
ASSERT_EQ(tc_tdm_output_prepare(dpy, output, true), true);
dump = tbm_surface_create(TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, TBM_FORMAT_ARGB8888);
}
}
-TEST_P(TDMHwc, GetClientTargetBufferQueueFainNoHwc)
+TEST_P(TDMHwc, GetClientTargetBufferQueueFailNoHwc)
{
TDM_UT_SKIP_FLAG(has_outputs);
hwc = tdm_output_get_hwc(outputs[o], &error);
if (hwc) {
queue = tdm_hwc_get_client_target_buffer_queue(hwc, &error);
- ASSERT_EQ(TDM_ERROR_NONE, error);
- ASSERT_NE(NULL, queue);
+ ASSERT_NE(TDM_ERROR_NONE, error);
+ ASSERT_EQ(NULL, queue);
} else {
queue = tdm_hwc_get_client_target_buffer_queue(hwc, &error);
ASSERT_NE(TDM_ERROR_NONE, error);
tbm_surface_queue_h queue = NULL;
for (int o = 0; o < output_count; o++) {
+ ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
hwc = tdm_output_get_hwc(outputs[o], &error);
if (hwc) {
queue = tdm_hwc_get_client_target_buffer_queue(hwc, &error);
tbm_surface_h target_buff = NULL;
for (int o = 0; o < output_count; o++) {
+ ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
hwc = tdm_output_get_hwc(outputs[o], &error);
if (hwc) {
ASSERT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE);
+ ASSERT_NE(mode, NULL);
target_buff = tbm_surface_internal_create_with_flags(mode->hdisplay, mode->vdisplay,
TBM_FORMAT_ARGB8888, TBM_BO_DEFAULT);
ASSERT_NE(NULL, target_buff);
tdm_hwc *hwc = NULL;
tdm_error error = TDM_ERROR_NONE;
tdm_region damage = {.num_rects = 0, .rects = NULL};
- tbm_surface_h target_buff = NULL;
for (int o = 0; o < output_count; o++) {
+ ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
hwc = tdm_output_get_hwc(outputs[o], &error);
if (hwc) {
error = tdm_hwc_set_client_target_buffer(hwc, NULL, damage);
- tbm_surface_internal_destroy(target_buff);
ASSERT_EQ(TDM_ERROR_NONE, error);
} else {
error = tdm_hwc_set_client_target_buffer(hwc, NULL, damage);
hwc = tdm_output_get_hwc(outputs[o], &error);
if (hwc) {
error = tdm_hwc_accept_validation(hwc);
- ASSERT_NE(TDM_ERROR_NONE, error);
+ ASSERT_EQ(TDM_ERROR_NONE, error);
} else {
error = tdm_hwc_accept_validation(hwc);
ASSERT_NE(TDM_ERROR_NONE, error);
uint32_t get_num = 0;
for (int o = 0; o < output_count; o++) {
+ ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
hwc = tdm_output_get_hwc(outputs[o], &error);
if (hwc) {
for (int w = 0; w < HWC_WIN_NUM; w++) {
changed_hwc_window = (tdm_hwc_window **)calloc(num_types, sizeof(tdm_hwc_window *));
composition_types = (tdm_hwc_window_composition *)calloc(num_types, sizeof(tdm_hwc_window_composition));
+ get_num = num_types;
error = tdm_hwc_get_changed_composition_types(hwc, &get_num, changed_hwc_window, composition_types);
ASSERT_EQ(TDM_ERROR_NONE, error);
ASSERT_EQ(get_num, num_types);
- error = tdm_hwc_accept_validation(hwc);
+ error = tdm_hwc_accept_validation(hwc);
ASSERT_EQ(TDM_ERROR_NONE, error);
free(composition_types);
uint32_t get_num = 0;
for (int o = 0; o < output_count; o++) {
+ ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
hwc = tdm_output_get_hwc(outputs[o], &error);
if (hwc) {
for (int w = 0; w < HWC_WIN_NUM; w++) {
changed_hwc_window = (tdm_hwc_window **)calloc(num_types, sizeof(tdm_hwc_window *));
composition_types = (tdm_hwc_window_composition *)calloc(num_types, sizeof(tdm_hwc_window_composition));
+ get_num = num_types;
error = tdm_hwc_get_changed_composition_types(hwc, &get_num, changed_hwc_window, composition_types);
ASSERT_EQ(TDM_ERROR_NONE, error);
ASSERT_EQ(get_num, num_types);
}
error = tdm_hwc_commit(hwc, 0, _tc_tdm_hwc_commit_cb, NULL);
- ASSERT_NE(TDM_ERROR_NONE, error);
+ ASSERT_EQ(TDM_ERROR_NONE, error);
for (int w = 0; w < HWC_WIN_NUM; w++)
tdm_hwc_window_destroy(hwc_wnds[w]);
}
bool
+tc_tdm_output_prepare_hwc_buffer(tdm_output *output, tbm_surface_h *buffers, int buffer_count, bool fill)
+{
+ int w, h;
+ const tdm_output_mode *mode = NULL;
+
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_mode(output, &mode) == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(mode != NULL);
+
+ w = mode->hdisplay;
+ h = mode->vdisplay;
+
+ TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_buffer_create(w, h, TBM_FORMAT_ARGB8888, TBM_BO_SCANOUT, fill, buffer_count, buffers) == true);
+
+ return true;
+}
+
+bool
tc_tdm_output_prepare(tdm_display *dpy, tdm_output *output, bool fill)
{
tbm_surface_h buffer = NULL;
tdm_layer *layer;
bool done = false;
tdm_output_conn_status status;
+ tdm_region fb_damage;
+ tdm_hwc *thwc = NULL;
+ uint32_t num = 0;
TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_output_is_connected(output) == true);
TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_output_mode_setting(output) == true);
TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_set_dpms(output, TDM_OUTPUT_DPMS_ON) == TDM_ERROR_NONE);
- TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_primary_index(output, &primary_index) == TDM_ERROR_NONE);
- TDM_UT_RETURN_FALSE_IF_FAIL(primary_index >= 0);
+ if (tc_tdm_output_is_hwc_enable(output)) {
+ TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_output_prepare_hwc_buffer(output, &buffer, 1, fill) == true);
+ thwc = tdm_output_get_hwc(output, &ret);
+ TDM_UT_GOTO_IF_FAIL(thwc != NULL, failed);
- layer = tdm_output_get_layer(output, primary_index, &ret);
- TDM_UT_RETURN_FALSE_IF_FAIL(ret == TDM_ERROR_NONE);
- TDM_UT_RETURN_FALSE_IF_FAIL(layer != NULL);
+ TDM_UT_GOTO_IF_FAIL(tdm_hwc_set_client_target_buffer(thwc, buffer, fb_damage) == TDM_ERROR_NONE, failed);
+ TDM_UT_GOTO_IF_FAIL(tdm_hwc_validate(thwc, NULL, 0, &num) == TDM_ERROR_NONE, failed);
+ TDM_UT_GOTO_IF_FAIL(tdm_hwc_accept_validation(thwc) == TDM_ERROR_NONE, failed);
+ TDM_UT_GOTO_IF_FAIL(tdm_hwc_commit(thwc, 0, NULL, NULL) == TDM_ERROR_NONE, failed);
+ } else {
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_primary_index(output, &primary_index) == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(primary_index >= 0);
+
+ layer = tdm_output_get_layer(output, primary_index, &ret);
+ TDM_UT_RETURN_FALSE_IF_FAIL(ret == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(layer != NULL);
- TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_layer_prepare_buffer(layer, &buffer, 1, fill) == true);
- TDM_UT_RETURN_FALSE_IF_FAIL(buffer != NULL);
+ TDM_UT_RETURN_FALSE_IF_FAIL(tc_tdm_layer_prepare_buffer(layer, &buffer, 1, fill) == true);
+ TDM_UT_RETURN_FALSE_IF_FAIL(buffer != NULL);
- TDM_UT_GOTO_IF_FAIL(tc_tdm_layer_set_buffer(layer, buffer) == true, failed);
+ 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);
+ 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_get_conn_status(output, &status) == TDM_ERROR_NONE, failed);
TDM_UT_GOTO_IF_FAIL(status == TDM_OUTPUT_CONN_STATUS_MODE_SETTED, failed);
tdm_error ret;
int count = 0;
unsigned int pipe = 0;
+ tdm_hwc *thwc = NULL;
+ const tdm_output_mode *mode = NULL;
+ tdm_output_dpms dpms = TDM_OUTPUT_DPMS_OFF;
+ tdm_region fb_damage;
+ uint32_t num = 0;
+
+ if (tc_tdm_output_is_hwc_enable(output)) {
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_mode(output, &mode) == TDM_ERROR_NONE);
+ if (mode == NULL)
+ return true;
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_dpms(output, &dpms) == TDM_ERROR_NONE);
+ if (dpms != TDM_OUTPUT_DPMS_ON)
+ return true;
+
+ thwc = tdm_output_get_hwc(output, &ret);
+ TDM_UT_RETURN_FALSE_IF_FAIL(thwc != NULL);
+
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_hwc_set_client_target_buffer(thwc, NULL, fb_damage) == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_hwc_validate(thwc, NULL, 0, &num) == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_hwc_accept_validation(thwc) == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_hwc_commit(thwc, 0, NULL, NULL) == TDM_ERROR_NONE);
+ } else {
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_layer_count(output, &count) == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(count > 0);
- TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_layer_count(output, &count) == TDM_ERROR_NONE);
- TDM_UT_RETURN_FALSE_IF_FAIL(count > 0);
+ for (int l = 0; l < count; l++) {
+ tdm_layer *layer = tdm_output_get_layer(output, l, &ret);
+ TDM_UT_RETURN_FALSE_IF_FAIL(ret == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(layer != NULL);
- for (int l = 0; l < count; l++) {
- tdm_layer *layer = tdm_output_get_layer(output, l, &ret);
- TDM_UT_RETURN_FALSE_IF_FAIL(ret == TDM_ERROR_NONE);
- TDM_UT_RETURN_FALSE_IF_FAIL(layer != NULL);
+ if (tc_tdm_layer_is_cursor_layer(layer))
+ continue;
+ if (tc_tdm_layer_is_video_layer(layer))
+ continue;
- if (tc_tdm_layer_is_cursor_layer(layer))
- continue;
- if (tc_tdm_layer_is_video_layer(layer))
- continue;
-
- TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_unset_buffer(layer) == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_unset_buffer(layer) == TDM_ERROR_NONE);
+ }
}
TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_pipe(output, &pipe) == TDM_ERROR_NONE);
for (int o = 0; o < output_count; o++) {
int primary_index = TDM_UT_INVALID_VALUE;
- ASSERT_EQ(tdm_output_get_primary_index(outputs[o], &primary_index), TDM_ERROR_NONE);
- ASSERT_NE(primary_index, TDM_UT_INVALID_VALUE);
+
+ if (!tc_tdm_output_is_hwc_enable(outputs[o])) {
+ ASSERT_EQ(tdm_output_get_primary_index(outputs[o], &primary_index), TDM_ERROR_NONE);
+ ASSERT_NE(primary_index, TDM_UT_INVALID_VALUE);
+ } else
+ TDM_UT_SKIP_FLAG(0);
}
}
done1 = false;
start = tdm_helper_get_time();
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE);
- while (!done1)
- ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE);
- end = tdm_helper_get_time();
-
- /* "+ interval" consider the delay of socket communication between kernel and platform */
- ASSERT_LT((end - start), (interval + interval));
+ if (!tc_tdm_output_is_hwc_enable(outputs[o])) {
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE);
+ while (!done1)
+ ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE);
+ end = tdm_helper_get_time();
+
+ /* "+ interval" consider the delay of socket communication between kernel and platform */
+ ASSERT_LT((end - start), (interval + interval));
+ } else
+ TDM_UT_SKIP_FLAG(0);
}
}
}
continue;
ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_ON), TDM_ERROR_NONE);
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE);
+ if (!tc_tdm_output_is_hwc_enable(outputs[o]))
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, NULL, NULL), TDM_ERROR_NONE);
+ else
+ TDM_UT_SKIP_FLAG(0);
}
}
ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_SUSPEND), TDM_ERROR_NONE);
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, NULL), TDM_ERROR_DPMS_OFF);
+ if (!tc_tdm_output_is_hwc_enable(outputs[o]))
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, NULL), TDM_ERROR_DPMS_OFF);
+ else
+ TDM_UT_SKIP_FLAG(0);
}
}
ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE);
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, NULL), TDM_ERROR_DPMS_OFF);
+ if (!tc_tdm_output_is_hwc_enable(outputs[o]))
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, NULL), TDM_ERROR_DPMS_OFF);
+ else
+ TDM_UT_SKIP_FLAG(0);
}
}
ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
- ASSERT_EQ(tdm_output_get_primary_index(outputs[o], &index), TDM_ERROR_NONE);
- ASSERT_NE(index, TDM_UT_INVALID_VALUE);
+ if (!tc_tdm_output_is_hwc_enable(outputs[o])) {
+ ASSERT_EQ(tdm_output_get_primary_index(outputs[o], &index), TDM_ERROR_NONE);
+ ASSERT_NE(index, TDM_UT_INVALID_VALUE);
+ } else
+ TDM_UT_SKIP_FLAG(0);
layer = tdm_output_get_layer(outputs[o], index, &ret);
ASSERT_EQ(ret, TDM_ERROR_NONE);
ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
for (int t = 0; t < 10; t++) {
- done1 = done2 = done3 = false;
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE);
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE);
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE);
- while (!done1 || !done2 || !done3)
- ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE);
+ if (!tc_tdm_output_is_hwc_enable(outputs[o])) {
+ done1 = done2 = done3 = false;
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE);
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE);
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE);
+ while (!done1 || !done2 || !done3)
+ ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE);
+ } else
+ TDM_UT_SKIP_FLAG(0);
}
}
}
ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
for (int t = 0; t < 10; t++) {
- done1 = done2 = done3 = false;
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE);
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE);
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE);
- tdm_output_remove_commit_handler(outputs[o], _tc_tdm_output_done_cb, &done2);
- while (!done1 || done2 || !done3)
- ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE);
+ if (!tc_tdm_output_is_hwc_enable(outputs[o])) {
+ done1 = done2 = done3 = false;
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE);
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE);
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE);
+ tdm_output_remove_commit_handler(outputs[o], _tc_tdm_output_done_cb, &done2);
+ while (!done1 || done2 || !done3)
+ ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE);
+ } else
+ TDM_UT_SKIP_FLAG(0);
}
}
}
ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
for (int t = 0; t < 10; t++) {
- done1 = done2 = done3 = false;
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE);
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE);
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE);
- tdm_output_remove_commit_handler(outputs[o], _tc_tdm_output_done_cb, NULL);
- while (!done1 || !done2 || !done3)
- ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE);
+ if (!tc_tdm_output_is_hwc_enable(outputs[o])) {
+ done1 = done2 = done3 = false;
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done1), TDM_ERROR_NONE);
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done2), TDM_ERROR_NONE);
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb, &done3), TDM_ERROR_NONE);
+ tdm_output_remove_commit_handler(outputs[o], _tc_tdm_output_done_cb, NULL);
+ while (!done1 || !done2 || !done3)
+ ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE);
+ } else
+ TDM_UT_SKIP_FLAG(0);
}
}
}
ASSERT_EQ(tc_tdm_output_prepare(dpy, outputs[o], true), true);
for (int t = 0; t < 10; t++) {
- done1 = done2 = done3 = false;
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb2, &done1), TDM_ERROR_NONE);
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb2, &done2), TDM_ERROR_NONE);
- ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb2, &done3), TDM_ERROR_NONE);
- while (!done1 || !done2 || !done3)
- ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE);
+ if (!tc_tdm_output_is_hwc_enable(outputs[o])) {
+ done1 = done2 = done3 = false;
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb2, &done1), TDM_ERROR_NONE);
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb2, &done2), TDM_ERROR_NONE);
+ ASSERT_EQ(tdm_output_commit(outputs[o], 0, _tc_tdm_output_done_cb2, &done3), TDM_ERROR_NONE);
+ while (!done1 || !done2 || !done3)
+ ASSERT_EQ(tc_tdm_display_handle_events(dpy), TDM_ERROR_NONE);
+ } else
+ TDM_UT_SKIP_FLAG(0);
}
}
}
Values(TDM_DEFAULT_MODULE));
#endif
-/* LCOV_EXCL_END */
\ No newline at end of file
+/* LCOV_EXCL_END */