Hi Christian,
On Tue, Aug 16, 2016 at 11:32 PM, Christian König <christian.koe...@amd.com> wrote: > Am 16.08.2016 um 19:50 schrieb Nayan Deshmukh: >> >> Hi Christian, >> >> >> >> On Tue, Aug 16, 2016 at 11:02 PM, Christian König >> <christian.koe...@amd.com> wrote: >>> >>> Am 16.08.2016 um 19:29 schrieb Nayan Deshmukh: >>>> >>>> Hi Andy, >>>> >>>> Thanks for testing. >>>> >>>> On Tue, Aug 16, 2016 at 9:14 PM, Andy Furniss <adf.li...@gmail.com> >>>> wrote: >>>>> >>>>> Nayan Deshmukh wrote: >>>>>> >>>>>> Hi Andy, >>>>> >>>>> >>>>>> You are right :( It messes up chroma but only in case of sharpen at >>>>>> least for me. >>>>> >>>>> >>>>> Retested and denoise is also affected for me. >>>>> >>>>>> I tried some changes and the chroma effects are fixed if we apply the >>>>>> sharpness >>>>>> filter to only to the first surface instead of all the surfaces of the >>>>>> buffer. >>>>>> Can you verify this? >>>>> >>>>> >>>>> If you mean changing surfaces[i] to surfaces[0] below, then it is >>>>> better, but there are still artifacts/chroma errors. >>>>> >>>>> In addition to changing as above, changing sampler_views[0] seems >>>>> to fix denoise and negative sharpen, but gives a new sort of >>>>> artifact for positive sharpen. >>>> >>>> Sorry for the misleading language. What I meant was that the filter >>>> should >>>> only >>>> be applied to first resource i.e. use only first sampler_view and >>>> surface. As you >>>> replaced i by 0 the filter gets applied multiple times. I tried doing >>>> that and I am >>>> experiencing same problems i.e. artifacts with positive sharpen. >>>> >>>> So can you please it try it again by replacing VL_MAX_SURFACES with 1 in >>>> the >>>> for loop. It should probably fix the problems. >>> >>> >>> Well that would work around the problem, but not fix it. >>> >>> This way you only apply the filters to the luma channel and not all the >>> other ones. >>> >>> The problem is possible that the chroma channels are subsampled and you >>> don't use the correct resolution in the filters for them. >>> >> Yes that's it. This is what the problem is. But to resolve it we need >> to initialize >> the filters with different resolution. So how can this be coded. I >> will need a bit >> guidance on this one (as I need on most of the things :) ). > > > You probably need to create multiple instance of the filters, one for the > original video width/height, then one for width/2 and original height and > one for width/2 and height/2. > > Then check the chroma format of the video buffer and apply accordingly. > I was thinking of checking height and width of individual surfaces and applying the filter accordingly, it will reduce the no. of ifs. Regrads, Nayan. > Regards, > Christian. > > >> >> I have this habit of fixing of patches with workarounds, need to change >> this >> approach. >> >> Regards, >> Nayan. >>> >>> Regards, >>> Christian. >>> >>> >>>> Regards, >>>> Nayan. >>>>> >>>>> >>>>>>>>> + for(i = 0; i < VL_MAX_SURFACES; ++i) { >>>>>>>>> + if(sampler_views[i] != NULL && surfaces[i] != NULL) { >>>>>>>>> + if (vmixer->noise_reduction.filter) >>>>>>>>> + >>>>>>>>> vl_median_filter_render(vmixer->noise_reduction.filter, >>>>>>>>> + sampler_views[i], >>>>>>>>> surfaces[i]); >>>>>>>>> + >>>>>>>>> + if (vmixer->sharpness.filter) >>>>>>>>> + vl_matrix_filter_render(vmixer->sharpness.filter, >>>>>>>>> + sampler_views[i], >>>>>>>>> surfaces[i]); >>>>> >>>>> > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev